[英]UWP : How to suppress a key press event in UWP?
我有一個 winform 代碼來抑制按鍵。 這里是
if (e.KeyCode == Keys.Up || e.KeyCode == Keys.Left || e.KeyCode == Keys.Delete) {
e.SuppressKeyPress = true;
}
我想在 UWP 中做同樣的事情並嘗試過這個
if (e.Key == Windows.System.VirtualKey.Up || e.Key == Windows.System.VirtualKey.Down || e.Key == Windows.System.VirtualKey.Delete) {
e.SuppressKeyPress = true;
}
但是它給了我一個錯誤“KeyRoutedEventArgs”不包含“SuppressKeyPress”的定義,並且找不到接受“KeyRoutedEventArgs”類型的第一個參數的可訪問擴展方法“SuppressKeyPress”(您是否缺少 using 指令或程序集引用?
您可以通過將其標記為已處理來阻止其他處理程序處理該事件:
if (e.Key == Windows.System.VirtualKey.Up || e.Key == Windows.System.VirtualKey.Down || e.Key == Windows.System.VirtualKey.Delete)
{
e.Handled = true;
}
true標記已處理的路由事件; false則不處理路由事件,這允許事件進一步路由。 默認值為false 。
-- KeyRoutedEventArgs.Handled
UWP:如何在 UWP 中抑制按鍵事件?
UWP 在KeyRoutedEventArgs
中不包含SuppressKeyPress
,如果您想抑制按鍵按下,您可以檢測Window.Current.Content
PreviewKeyDown
事件,該事件將在您的KeyDown
事件之前調用。 請嘗試以下代碼。
Window.Current.Content.PreviewKeyDown += Content_PreviewKeyDown;
private void Content_PreviewKeyDown(object sender, KeyRoutedEventArgs e)
{
if (e.Key == VirtualKey.Left | e.Key == VirtualKey.Right | e.Key == VirtualKey.Up | e.Key == VirtualKey.Down | e.KeyCode == VirtualKey.Delete)
{
e.Handled = true;
}
else
{
e.Handled = false;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.