WPF事件


WPF引用路由事件,這些事件用來調用應用程序的元素樹上的各種監聽器上的處理程序。

路由事件主要有三種策略:冒泡、直接、隧道

(1)冒泡,這種事件處理方式是從源元素向上級流過去,直到到達根節點(頁或窗體)

(2)直接,這種處理方式是在源上處理,主要用在setter和trigger

(3)隧道,又稱作 Preview 事件,元素樹的根處調用事件處理程序,依次向下直到源。

隧道事件和冒泡事件一般成對出現。同一對事件,執行時首先是隧道事件,然后冒泡事件。

可以再XAML或者代碼中為控件添加事件,兩者效果是一樣的。

1.在XAML中添加事件

 (1)為容器所有button添加事件

  <StackPanel Button.Click="PanelButtonClick">
    <Button Name="Button1" Width="Auto" >Yes</Button>
    <Button Name="Button2" Width="Auto" >No</Button>
  </StackPanel>

(2)添加單個對象事件,只對當前元素有效

<Button Name="Button1" Width="Auto" Click="ButtonClick">Yes</Button>

2.在代碼中添加事件

this.Button1.AddHandler(Button.ClickEvent, new RoutedEventHandler(Onb1Click));

void Onb1Click(object sender, RoutedEventArgs e)

{

}

3.WPF窗體生命周期

從APP的run()開始,到加載控件,激活窗體,再到關閉,所經歷的主要事件有下面幾個:

(1)Initialized:當窗口的FrameworkElement底層初始化時觸發,即InitializeComponent方法調用時觸發。

       在構造函數之后立刻執行。

(2)LocationChanged:窗口被移動時觸發。

(3)Activated:窗口被激活時觸發。如果顯示窗口之前將ShowActivated 設置為 false,這個將被跳過。

(4)Deactivated:窗口處於非激活時(即其他窗口處於激活時)觸發。

(5)Loaded:顯示窗口之前觸發。

(6)ContentRendered:當內容顯示的時候觸發。

(7)Closing:嘗試關閉窗口時觸發,可以將參數CancelEventArgs的Cancel的屬性設置為true,取消關閉操作。

(8)Unloaded:當關閉窗口並且從可視化樹移除后觸發。

(9)Closed:在窗口關閉后觸發該事件,無法取消。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM