我们在以前的文章中曾经介绍了一些有关WPF事件的相关知识,相信大家已经对这一知识有一些掌握,在这里我们将会继续针对WPF Attached做一个简单的介绍。#t#
WPF Attached与Attached属性类似,WPF的Element在事件没有定义的情况下也支持Tunneling或者Bubbling事件。比如,我们可以在一个简单的窗口程序中这样指定事件函数:
- < Window
- xmlns=”http://schemas
.microsoft.com/winfx/2006/xaml/
presentation” - xmlns:x=”http://schemas.microsoft
.com/winfx/2006/xaml” - x:Class=”Window1”
- Button.Click=”Button_Click”
- < Button Text="TestButton"
- Width="50" Height="30">
- < /Window>
WPF Attached例子中,因为Window本身没有定义Click事件,所以我们必须指定Click事件属性的名称前缀,也就是定义事件的类名。经过这样的定义后,点击在Window中的TestButton,也会激发属性声明的Click事件,调用对应的Button_Click方法。
为什么这样的定义可以通过呢?首先编译时,XAML会看到Button类确实定义了一个Click的.NET事件。在运行时,会直接调用AddHandler把这两个事件依附到Window对应的类当中。所以上面用XAML属性声明的事件代码与下面的程序代码等效:
- public Window1 {
- InitializeComponent();
- this.AddHandler(Button.
ClickEvent, new Routed
EventHandler(Button_Click)); - }
以上就是对WPF Attached的相关介绍。