WPF事件
WPF控件结构是树型的。
逻辑树(logic Tree):颗粒度到控件的树。
可视元素树(Visual Tree):颗粒度到控件的组件的树。
LogicalTreeHelper
GetChildren获取指定元素的子集合 FindLogicalNode 获取逻辑节点 GetParent 获取父亲节点 BringIntoView 显示控件到事业范围内,通常是由滚动条的时候。
|
WPF路由事件:
<StackPanel x:Name="sk"> <StackPanel Margin="20"> <Button Content="测试1" Height="30" Width="40"></Button> </StackPanel>
<StackPanel> <Button Content="测试2" Height="30" Width="40"></Button> </StackPanel> </StackPanel>
public MainWindow() { InitializeComponent();
sk.AddHandler(Button.ClickEvent, new RoutedEventHandler(Button_Click));
}
private void Button_Click(object sender, RoutedEventArgs e) { Button button = e.OriginalSource as Button; MessageBox.Show(button.Content.ToString()); }
|
路由事件和传统WINFORM事件的不同点,
Sender 不在是原始的按钮了,e.OriginalSource才是原始的事件来源的控件。
e.Handled = true; 表示事件被处理了,就不会沿着树传播了。