WPF UserControl響應窗體的PreviewKeyDown事件

目的

在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事件方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章