2017-07-18 152 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