1. 程式人生 > 其它 >WPF 事件無法被執行

WPF 事件無法被執行

技術標籤:WPFwpf事件處理機制

原因:

由於某些控制元件內部有一些內建的事件處理,其MouseDown事件(包括MouseUp等)在處理完成之後將Handled標誌置為true,附加事件PreviewMouseDown事件也就不再被執行,所以普通的MouseDown事件程式碼是不會有作用的。如果要使用MouseDown事件,要麼使用PreviewMouseDown事件來替代,要麼使用AddHandler來新增自定義的路由事件處理。

解決方案:

1.使用相應的Preview事件。須注意隧道型別的事件是從根元素開始執行的。
2.使用AddHandler新增自定義的路由事件。

button1.
PreviewMouseDown += (object sender, MouseButtonEventArgs e) => { //這裡寫事件觸發時的操作 }; 或 button1.AddHandler(Button.MouseLeftButtonDownEvent, new MouseButtonEventHandler((s, e) => { //這裡寫事件觸發時的操作 }), true); 或 button1.AddHandler(Button.MouseDownEvent, new RoutedEventHandler((object sender, RoutedEventArgs
e) => { //這裡寫事件觸發時的操作 }), true);

參考:

使用WPF中的Button的MouseDown事件

WPF中MouseLeftButtonDown無法觸發的解決辦法