路由事件的演變史

轉自http://www.cnblogs.com/helloj2ee/archive/2010/09/30/1839660.html

 

      我看過此博主的多篇文章和著作,這篇文章有助於理解WPF的路由事件,我看的是PDF版,特此貼出來以饗讀者。

       正如WPF在簡單的.NET屬性概念上添加了許多基礎的東西一樣,它也爲.NET事件添加了許多基礎的東西。路由事件是專門設計用於在元素樹中使用的事件。當路由事件觸發後,它可以向上或向下遍歷可視樹和邏輯樹,用一種簡單而且持久的方式在每個元素上觸發,而不需要使用任何定製代碼。

      事件路由讓許多應用程序不去留意可視樹的細節(對於樣式重置來說這是很不錯的),並且對於成功的WPF元素創作至關重要。例如,Button有一個Click事件,這是基於底層的MouseLeftButtonDown事件或者KeyDown事件實現的。當用戶的鼠標指針位於標準按鈕之上,且按下鼠標左鍵的時候,它們實際上是與ButtonChrome或者TextBlock可視子元素在交互。由於事件遍歷了可視樹,所以Button元素最終會發現這個事件,並處理該事件。類似地,對於VCR樣式的Stop(停止)按鈕來說,一個用戶可能在Rectangle邏輯子元素上直接按下鼠標左鍵。由於事件遍歷了邏輯樹,Button元素還是會發現這個事件,並處理該事件。(如果你真的希望能夠區分這個事件是Rectangle上的還是凸出的Button上的,也可以自己去區分代碼。)

PDF下載地址爲http://download.csdn.net/source/3406933

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章