uwp 禁用 Richeditbox 键盘快捷键

uwp Disable Richeditbox keyboard shorcuts

有没有办法在 uwp 应用程序中禁用 RichEditBox 控件上的键盘快捷键?我想禁用 Ctrl-A、Ctrl-2(更改行间距)、Ctrl-R(右对齐)等组合键。 RichEditBox 是 UserControl 的一部分。

我尝试使用 richEditBox 的 KeyDown 事件,但仍然是 Ctrl-A select 所有文本:

  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 键盘快捷键?我在用着 微软 Windows [版本 10.0.14393]。

  1. 覆盖 Richeditbox
  2. 中的 OnKeyDown 事件
  3. 检查您的按键

这是一个代码示例:

代码隐藏

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/>