2017-07-18 188 views
0

有沒有辦法在uwp應用程序的RichEditBox控件上禁用鍵盤快捷鍵?我想禁用Ctrl-A,Ctrl-2(更改行間距),Ctrl-R(右對齊)等組合鍵。 RichEditBox是UserControl的一部分。uwp禁用Richeditbox鍵盤快捷鍵

我試圖用richEditBox的keydown事件,但仍然按Ctrl-A全選所有文字:

private void OnRichEditBoxKeyDown(object sender, KeyRoutedEventArgs e) 
    { 
     var ctrl = Window.Current.CoreWindow.GetKeyState(Windows.System.VirtualKey.Control);      

     if (ctrl.HasFlag(CoreVirtualKeyStates.Down)) 
     { 
      if (e.Key == VirtualKey.A) 
      { 
       e.Handled = true;      
      } 
     }   
    } 

我如何可以禁用UWP應用程序默認爲Ctrl鍵盤快捷方式?我正在使用 Microsoft Windows [版本10.0.14393]。

回答

1
  1. 覆蓋OnKeyDown事件Richeditbox
  2. 檢查您的按鍵

下面是一個代碼示例:

代碼

public class MyRichEditBox : RichEditBox 
{ 
    protected override void OnKeyDown(KeyRoutedEventArgs e) 
    { 
     var ctrl = Window.Current.CoreWindow.GetKeyState(VirtualKey.Control); 

     if (ctrl.HasFlag(CoreVirtualKeyStates.Down)) 
     { 
      //return; //if you want to totally disable crtl 
      if (e.Key == VirtualKey.A) 
      { 
       return; 
      } 
     } 
     base.OnKeyDown(e); 
    } 
} 

落後於XAML

<local:MyRichEditBox/> 
+0

謝謝。這解決了我的問題。 – user3506220