WPF 事件無法被執行
阿新 • • 發佈:2021-01-17
原因:
由於某些控制元件內部有一些內建的事件處理,其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);
參考: