В статье 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.";
}
}
}