Событие кнопки Подавить mousedown и mouseup, потому что событие кнопки является событием высокого уровня и имеет бит кода, который дает дескриптор флага true. Эта причина Подавлена ​​для mousdown, чтобы решить эту проблему, вы можете добавить этот код в конструктор окна

тье MSDNПонимание перенаправленных событий и команд в WPF, Говорится

событие будет пузыриться (распространяться) вверх по визуальному дереву от исходного элемента до тех пор, пока оно не будет обработано или не достигнет корневого элемента.

Тем не менее, в этом примере, когда вы нажимаете кнопку,он не «всплывает в визуальном дереве» для обработки родительским событием StackPanelто есть нажатие на кнопку не запускает событие.

Почему нет?Что они имеют в виду, тогда как "пузыриться" если не это?

XAML:

<Window x:Class="TestClickEvents456.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="300" Width="300">
    <StackPanel x:Name="TheStackPanel"
                Background="Yellow"
                MouseDown="TheStackPanel_MouseDown">
        <Button x:Name="TheButton"
                Margin="10"
                Content="Click This"/>
        <TextBlock x:Name="TheMessage"
                   Text="Click the button or the yellow area"/>
    </StackPanel>
</Window>

Код-за:

using System.Windows;
using System.Windows.Input;

namespace TestClickEvents456
{
    public partial class Window1 : Window
    {
        public Window1()
        {
            InitializeComponent();
        }

        private void TheStackPanel_MouseDown(object sender, MouseButtonEventArgs e)
        {
            TheMessage.Text = "StackPanel was clicked.";
        }

    }
}

Ответы на вопрос(5)

Ваш ответ на вопрос