深入浅出WPF-03.XAML语法

2 XAML语法

树形结构,我们将整个XAML的结构想象成一棵树,我们从树的顶部向下看,形成俯视图。最上面的叶子节点会覆盖父节点,同级的子节点,后面的(也就是树的最上面)会覆盖前面的。覆盖包含了形状(UI的展现形式)和功能(操作或者命令),如果叶子节点不去处理,会将这个操作一直延伸到根节点,一旦叶子节点处理了(e.Handled = true),父节点就不会再去处理。

<Grid>
	<Button Width="163" Height="93" Click="Button_Click_1">
		<Button Content="Button" Width="91" Height="42" Click="Button_Click"/>
	</Button>
</Grid>
private void Button_Click(object sender, RoutedEventArgs e)
{
    Console.WriteLine("Button_Click");
    e.Handled = true;
}

private void Button_Click_1(object sender, RoutedEventArgs e)
{
    Console.WriteLine("Button_Click_1");
}

如果没有e.Handled = true; 当我们点击最上层的Button时,会触发两个事件,控制台打印出两行记录。否则,父节点Button就不处理点击事件,控制台输出一行记录。也就是说,事件会沿着枝干向根节点发送,直到e.Handled = true;出现,代表此事件已经被处理,无需继续向上发送。

原文地址:https://www.cnblogs.com/vigorous/p/13047758.html