天天看點

2021-09-28 XAML事件

開發工具與關鍵技術:Visual Studio C# Window應用程式

作者:翁一凱

撰寫時間:2021/9/28

XAML事件

事件(Event)

·Windows消息機制中重要概念之一,最常見的人機互動手段之一

·XAML幫助應用管理使用者輸入,執行不同的行為

·引入增強型事件處理系統-Routed Event(路由事件)

·事件常常被用于控制更改通知操作

一、事件基礎文法

基礎文法:

XAML:

2021-09-28 XAML事件

C#:

2021-09-28 XAML事件

事件系統在WPF中被更新進化稱為路由事件(Routed Event),并在其基礎上衍

生出指令傳遞機制。這些機制很大程度上減少了對程式員的束縛,讓程式的設計和

實作更加靈活,子產品之間的耦合度也進一步降低。

二、路由事件處理方式

路由政策

路由事件使用以下三種路由政策之一:

·浮升(冒泡): 調用事件源上的事件處理程式。 路由事件随後會路由到後續的父級元

素,直到到達元素樹的根。 大多數路由事件都使用浮升路由政策。 浮升路由事件通

常用于報告來自不同控件或其他 UI 元素的輸入或狀态變化。

·隧道: 最初将調用元素樹的根處的事件處理程式。 随後,路由事件将朝着路由事件

的源節點元素(即引發路由事件的元素)方向,沿路由線路傳播到後續的子元素。

合成控件的過程中通常會使用或處理隧道路由事件,通過這種方式,可以有意地禁

止複合部件中的事件,或者将其替換為特定于整個控件的事件。 在 WPF 中提供的輸

入事件通常是以隧道/浮升對實作的。 隧道事件有時又稱作預覽事件,這是由該對所

使用的命名約定決定的。

·直接: 隻有源元素本身才有機會調用處理程式以進行響應。 這類似于 Windows 窗

體用于事件的 “路由”。 但是,與标準 CLR 事件不同,直接路由事件支援類處理 (類

處理将在下一節中介紹) 并可由 EventSetter 和使用 EventTrigger 。

2021-09-28 XAML事件