【问题标题】:uwp Disable Richeditbox keyboard shorcutsuwp 禁用 Richeditbox 键盘快捷键
【发布时间】:2017-07-18 14:31:08
【问题描述】:

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

我尝试使用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]。

【问题讨论】:

    标签: c# uwp windows-10-universal


    【解决方案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/>
    

    【讨论】:

      猜你喜欢
      • 2015-04-17
      • 1970-01-01
      • 2018-09-16
      • 2012-11-06
      • 2023-04-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-08
      相关资源
      最近更新 更多