深入探討WPF Attached
我們在以前的文章中曾經(jīng)介紹了一些有關(guān)WPF事件的相關(guān)知識,相信大家已經(jīng)對這一知識有一些掌握,在這里我們將會繼續(xù)針對WPF Attached做一個(gè)簡單的介紹。#t#
WPF Attached與Attached屬性類似,WPF的Element在事件沒有定義的情況下也支持Tunneling或者Bubbling事件。比如,我們可以在一個(gè)簡單的窗口程序中這樣指定事件函數(shù):
- < 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例子中,因?yàn)閃indow本身沒有定義Click事件,所以我們必須指定Click事件屬性的名稱前綴,也就是定義事件的類名。經(jīng)過這樣的定義后,點(diǎn)擊在Window中的TestButton,也會激發(fā)屬性聲明的Click事件,調(diào)用對應(yīng)的Button_Click方法。
為什么這樣的定義可以通過呢?首先編譯時(shí),XAML會看到Button類確實(shí)定義了一個(gè)Click的.NET事件。在運(yùn)行時(shí),會直接調(diào)用AddHandler把這兩個(gè)事件依附到Window對應(yīng)的類當(dāng)中。所以上面用XAML屬性聲明的事件代碼與下面的程序代碼等效:
- public Window1 {
 - InitializeComponent();
 - this.AddHandler(Button.
ClickEvent, new Routed
EventHandler(Button_Click)); - }
 
以上就是對WPF Attached的相關(guān)介紹。















 
 
 



 
 
 
 