防止 WPF 中的 Alt 键聚焦主菜单

Mik*_*her 1 c# wpf keyboard-shortcuts

如果我Alt在 WPF 应用程序中按下带有<Menu>元素的键,则第一个菜单条目将获得焦点。我怎样才能防止这种行为。

我的问题是我的窗口中有一个带有多选功能的Scintilla.Net组件,当我尝试选择一个矩形选择(通过按住 Alt 键)时,只要我松开 Alt 键,我的组件就会失去焦点。

是一个类似的问题,但不幸的是它是关于 Windows 窗体而不是 WPF

Art*_*oll 5

我没有那个组件,但它应该像 on 一样工作TextBox
在您WindowKeyDown事件上设置事件处理程序:

<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">  
Run Code Online (Sandbox Code Playgroud)

并在代码隐藏中检查您想要的组合键:

private void Window_KeyDown(object sender, KeyEventArgs e)
{
    if (e.Key == Key.System && e.OriginalSource is TextBox)
    {
        e.Handled = true;
    }
}  
Run Code Online (Sandbox Code Playgroud)

在您的示例中,重要的是不要检查Key.LeftAlt,而是Key.SystemOriginalSource检查从更改为TextBox您想要的类型。