如果我在带有<Menu>
元素的WPF应用程序中按 Alt 键,则会聚焦第一个菜单项。
我该如何防止这种行为。
我的问题是我的窗口中有一个带有多选的Scintilla.Net组件,当我尝试选择一个矩形选区时(通过按住Alt键)我的组件一旦放开就会失去焦点Alt键go。
Here是一个类似的问题,但不幸的是它是关于Windows窗体而不是WPF
答案 0 :(得分:4)
我没有该组件,但它应与TextBox
上的组件相同。例如。
在Window
上为KeyDown
事件设置事件处理程序:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:WpfApplication1"
Title="MainWindow" Height="350" Width="525" KeyDown="Window_KeyDown">
并在代码隐藏中检查您想要的组合键:
private void Window_KeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.System && e.OriginalSource is TextBox)
{
e.Handled = true;
}
}
在您的示例中,重要的是不要检查Key.LeftAlt
,而是检查Key.System
并将OriginalSource
检查从TextBox
更改为您想要的类型。