目的
在UserControl頁面實作通過快捷鍵打開建立視窗
實作過程
監聽Window窗體的PreviewKeyDown
其實,使用KeyDown事件也是可以的
頁面代碼
<Window x:Class="WpfApp2.MainWindow" PreviewKeyDown="Window_PreviewKeyDown" ......>
後置頁代碼
private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (this.ShowContent.Content is BaseUserControl control) control.ListenWindowKeyDown(e);
}
UserControl基類
BaseUserControl繼承自UserControl,定義了虛方法,以便重寫
public virtual void ListenWindowKeyDown(KeyEventArgs e)
{
//如果需要使用事件,需要重寫,此處不做任何處理
}
UserControl調用 KeyDown
// 監聽視窗KeyDown事件
public override void ListenWindowKeyDown(KeyEventArgs e)
{
//DEMO
if (Keyboard.IsKeyDown(Key.LeftAlt) && Keyboard.IsKeyDown(Key.N)) { //TODO }
}
到此完成,具體的快捷鍵觸發就不寫了
參考
https://blog.csdn.net/BYH371256/article/details/89394198
WPFの三種方式實作快捷鍵
https://www.cnblogs.com/lonelyxmas/p/9941791.html
WPF UserControl響應PreviewKeyDown事件方法
轉載于:https://www.cnblogs.com/xcsn/p/10768903.html