uwp禁用Richeditbox键盘快捷键
问题描述:
有没有办法在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]。
答
- 覆盖
OnKeyDown
事件Richeditbox
- 检查您的按键
下面是一个代码示例:
代码
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/>
谢谢。这解决了我的问题。 – user3506220