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]。
- 覆盖
Richeditbox
中的 OnKeyDown
事件
- 检查您的按键
这是一个代码示例:
代码隐藏
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/>
有没有办法在 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]。
- 覆盖
Richeditbox
中的 - 检查您的按键
OnKeyDown
事件
这是一个代码示例:
代码隐藏
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/>