2017-02-15 76 views
0

如果我在<Menu>元素的WPF應用程序中按Alt鍵,則第一個菜單條目將變得焦點。 如何防止此行爲。防止WPF中的Alt鍵對焦Mainmenu

我的問題是我有一個Scintilla.Net組件在我的窗口中有多選,當我嘗試選擇一個矩形選擇時(通過按住Alt鍵),只要我讓Alt鍵去,我的組件就失去了焦點。

Here是一個類似的問題,但不幸的是它是關於Windows Forms和WPF不

回答

4

我沒有這樣的組件,但它應該工作一樣在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"> 

並檢查你想要的組合鍵隱藏代碼:

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更改爲所需的類型。

+1

謝謝你的工作。作爲參考:因爲Scintilla組件居住在WindowsFormsHost內,WindowsFormsHost作爲OriginalSource提供。 – Mikescher