成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

WPF傳遞事件重要性體現

開發 開發工具
WPF傳遞事件的應用可以幫助我們不需要過多關注于視覺樹。在這一點上,可以方便我們對WPF元素合成的理解。

WPF傳遞事件在實際應用中起到了非常重要的作用。希望大家可以通過這篇文章介紹的內容,充分掌握這一方法的應用,提高自己的開發效率。#t#

WPF在.NET簡單事件通知之上添加了很多基礎結構。傳遞事件的設計使得事件可以與元素樹一起很好的工作。事件發生后,可以在視覺樹和邏輯樹自動地進行上下傳遞,我們不需要添加任何額外的代碼。

WPF傳遞事件使得我們不需要過多關注于視覺樹,這樣封裝對于我們理解WPF的元素合成非常重要。比如,我們點擊一個按鈕的事件,在點擊的時候我們實際上點擊的是一個ButtonChrome或者TextBlock,也就是說我們點擊的是Button的內容元素。正是因為事件可以沿視覺樹傳遞,Button才發現這個事件,并且可以處理。

因此,我們可以給Button的Content當中添加任意的元素,而不會對事件有任何的影響。如果沒有這樣的事件傳遞,我們點擊Button內的元素時,必須手動編寫代碼觸發Button點擊事件。

WPF傳遞事件的的實現和行為與Dependency屬性類似。同樣,我們看看如何實現簡單的傳遞事件。多數時候,傳遞事件并不比普通的.NET事件難。與Dependency屬性一樣,.NET語言(除了XAML)本身并不明白傳遞目標。這些支持都是基于WPF API。

  1. public class Button {   
  2. // 傳遞的事件 public static readonly
     RoutedEvent ClickEvent;   
  3. static Button() {   
  4. // 注冊事件 Button.DoubleClickEvent =
    EventManager.RegisterRoutedEvent
    (“Click”, RoutingStrategy.Bubble, 
    typeof(RoutedEventHandler), typeof(Button)); …   
  5. }   
  6. // .NET事件保證 (可選的)   
  7. public event RoutedEventHandler Click {   
  8. add { AddHandler(Button.ClickEvent, value);   
  9. }   
  10. remove {   
  11. RemoveHandler(Button.ClickEvent, value);   
  12. }   
  13. }   
  14. protected override void OnMouse
    LeftButtonDown(MouseButtonEventArgs e) {   
  15. … // 激發事件   
  16. RaiseEvent(new RoutedEventArgs
    (Button.ClickEvent, this)); …   
  17. } …   
  18. }  

從上面的實現可以看出,事件與Dependency屬性有很多相似之處。也是定義一個靜態的RoutedEvent成員,同樣在靜態構造函數里注冊事件。為了方便,也包裝了一個普通的.NET事件。

這里的AddHandler/RemoveHandler不是從DependencyObject派生,而是更高一級的基類System.Windows.UIElement。這兩個方法為相應的事件添加/刪除一個委派。在OnMouseLeftButtonDown中,我們構造一個事件參數,傳入事件源對象this,然后調用RaiseEvent函數。

以上就是對WPF傳遞事件的相關概念解析。

責任編輯:曹凱 來源: IT168
相關推薦

2009-12-25 15:00:48

WPF軟件

2010-01-20 18:45:44

VB.NET DoEv

2021-07-19 16:23:55

數據安全滴滴大數據

2010-07-30 16:28:06

2023-10-24 11:07:57

2020-10-23 15:58:43

云計算IT技術

2020-08-27 07:00:00

代碼軟件應用程序

2013-08-08 10:10:06

備份策略全備份增量備份

2017-12-29 10:14:48

IT項目

2011-07-05 18:30:44

站內優化

2021-05-18 14:13:28

存儲云存儲備份

2009-12-25 16:40:49

WPF優勢

2016-08-29 20:31:17

2009-11-25 17:36:38

PHP函數includ

2009-09-28 13:23:00

CCNA學習方法CCNA

2009-03-03 17:25:41

2021-12-22 23:12:19

物聯網隱私安全

2022-11-04 14:13:54

2010-07-05 14:27:30

UML各種圖形

2011-08-11 10:12:11

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美久久视频 | 国产yw851.c免费观看网站 | 久久久久无码国产精品一区 | 国产精品久久久久久久久久久久 | 久久爱黑人激情av摘花 | 97久久精品午夜一区二区 | 91就要激情 | 欧美一级视频在线观看 | 成人精品国产免费网站 | 精品蜜桃一区二区三区 | 日韩一区二区久久 | 伊人成人免费视频 | 二区高清 | 青青艹在线视频 | 奇米av | 亚洲巨乳自拍在线视频 | 成人精品在线观看 | 久久久久久久一区 | 国产成人精品一区二区 | 欧美激情一区二区三级高清视频 | 久久av一区二区三区 | 亚洲一区视频在线 | 一区二区三区亚洲 | 男人的天堂中文字幕 | 中文天堂在线一区 | 国产资源在线视频 | av中文字幕网 | 国产精品视频97 | 9久久婷婷国产综合精品性色 | 亚洲综合网站 | 成人免费视频网站在线看 | 日韩三级免费网站 | 国产免费一区二区 | 国产成人在线视频播放 | 综合激情久久 | 性一交一乱一透一a级 | 欧美精品久久久久久久久久 | 午夜欧美一区二区三区在线播放 | 国产精品一区二区在线 | 福利在线观看 | 看真人视频一级毛片 |