Некорректно работает отображение нажатий клавиш
При нажатии на F10 кнопка F10 на форме никак не реагирует, зато реагирует кнопка System(Win), также при нажатии на любую из двух кнопок Alt, они никак не реагируют, но при нажатии RCtrl и RAlt одновременно RAlt все таки реагирует, в чем может быть проблема ?
private void WinKeyDown(object sender, KeyEventArgs e)
{
switch (e.Key)
{
case Key.F10:// F10
{
F10.Background = Brushes.LightGreen;
}
break;
//SpecialKeys------------------------------------------------------------------------------------------------------------------------------------------------
//SpecialKeys------------------------------------------------------------------------------------------------------------------------------------------------
//SpecialKeys------------------------------------------------------------------------------------------------------------------------------------------------
case Key.Escape:// ESC
{
Escape.Background = Brushes.LightGreen;
}
break;
case Key.Back:// Backspace
{
Backspace.Background = Brushes.LightGreen;
}
break;
case Key.Tab:// Tab
{
Tab.Background = Brushes.LightGreen;
}
break;
case Key.Enter:// Enter
{
Enter.Background = Brushes.LightGreen;
}
break;
case Key.CapsLock:// CAPS
{
Capslock.Background = Brushes.LightGreen;
}
break;
case Key.LeftShift:// Left Shift
{
LShift.Background = Brushes.LightGreen;
}
break;
case Key.RightShift:// Right Shift
{
RShift.Background = Brushes.LightGreen;
}
break;
case Key.LeftCtrl:// Left Ctrl
{
LCtrl.Background = Brushes.LightGreen;
}
break;
case Key.System:// Win
{
Sys.Background = Brushes.LightGreen;
}
break;
case Key.LeftAlt:// Left Alt
{
LAlt.Background = Brushes.LightGreen;
}
break;
case Key.Space:// Space
{
SpaceBar.Background = Brushes.LightGreen;
}
break;
case Key.RightAlt:// Right Alt
{
RAlt.Background = Brushes.LightGreen;
}
break;
case Key.RightCtrl:// Right Ctrl
{
RCtrl.Background = Brushes.LightGreen;
}
break;
case Key.Apps:// Menu
{
Apps.Background = Brushes.LightGreen;
}
break;
}
}
private void WinKeyUp(object sender, KeyEventArgs e)
{
switch (e.Key)
{
case Key.F10:// F10
{
F10.Background = Brushes.LightGray;
}
break;
//SpecialKeys------------------------------------------------------------------------------------------------------------------------------------------------
//SpecialKeys------------------------------------------------------------------------------------------------------------------------------------------------
//SpecialKeys------------------------------------------------------------------------------------------------------------------------------------------------
case Key.Escape:// ESC
{
Escape.Background = Brushes.LightGray;
}
break;
case Key.Back:// Backspace
{
Backspace.Background = Brushes.LightGray;
}
break;
case Key.Tab:// Tab
{
Tab.Background = Brushes.LightGray;
}
break;
case Key.Enter:// Enter
{
Enter.Background = Brushes.LightGray;
}
break;
case Key.CapsLock:// CAPS
{
Capslock.Background = Brushes.LightGray;
}
break;
case Key.LeftShift:// Left Shift
{
LShift.Background = Brushes.LightGray;
}
break;
case Key.RightShift:// Right Shift
{
RShift.Background = Brushes.LightGray;
}
break;
case Key.LeftCtrl:// Left Ctrl
{
LCtrl.Background = Brushes.LightGray;
}
break;
case Key.System:// Win
{
Sys.Background = Brushes.LightGray;
}
break;
case Key.LeftAlt:// Left Alt
{
LAlt.Background = Brushes.LightGray;
}
break;
case Key.Space:// Space
{
SpaceBar.Background = Brushes.LightGray;
}
break;
case Key.RightAlt:// Right Alt
{
RAlt.Background = Brushes.LightGray;
}
break;
case Key.RightCtrl:// Right Ctrl
{
RCtrl.Background = Brushes.LightGray;
}
break;
case Key.Apps:// Menu
{
Apps.Background = Brushes.LightGray;
}
break;
}
}
Вот XAML код :
<Window x:Class="Keyboard_Setup.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"
mc:Ignorable="d"
Title="Keyboard Setup" Height="720" Width="1280"
Background="Black"
PreviewKeyDown="WinKeyDown"
PreviewKeyUp="WinKeyUp">
<Grid>
<Canvas>
<Button x:Name="F10" Content="F10" Background="Gray" Width="48" Height="50" Canvas.Top="30" Canvas.Left="678"/>
<Button x:Name="RShift" Content="Shift" Background="Gray" Width="154" Height="50" Canvas.Top="265" Canvas.Left="680"/>
<Button x:Name="LCtrl" Content="Ctrl" Background="Gray" Width="60" Height="50" Canvas.Top="320" Canvas.Left="30"/>
<Button x:Name="Sys" Content="Win" Background="Gray" Width="60" Height="50" Canvas.Top="320" Canvas.Left="96"/>
<Button x:Name="LAlt" Content="Alt" Background="Gray" Width="60" Height="50" Canvas.Top="320" Canvas.Left="162"/>
<Button x:Name="SpaceBar" Content="" Background="Gray" Width="320" Height="50" Canvas.Top="320" Canvas.Left="228"/>
<Button x:Name="RAlt" Content="Alt" Background="Gray" Width="64" Height="50" Canvas.Top="320" Canvas.Left="554"/>
<Button x:Name="Apps" Content="Menu" Background="Gray" Width="134" Height="50" Canvas.Top="320" Canvas.Left="624"/>
<Button x:Name="RCtrl" Content="Ctrl" Background="Gray" Width="70" Height="50" Canvas.Top="320" Canvas.Left="764"/>
</Canvas>
</Grid>
Источник: Stack Overflow на русском