Window (Not a Form)에서 키 입력을 받으려고합니다. 버튼을 누를 때까지 이벤트가 수신됩니다. 그 후 내가하는 일에 상관없이 키 다운 이벤트는 더 이상 발생하지 않습니다. 어떤 해결책이 있습니까? 나는 그것을 검색 모두가C# WPF Window의 KeyDown 이벤트가 작동하지 않습니다.
this.KeyPreview = true;
를 사용하여 솔루션을 제안처럼 보이지만 창 같은 속성을 가지고 있지 않기 때문에이 여기에 작동하지 않을 수 있습니다. 많은 도움을줍니다. 나는 이미 모든 자식 Focusable을 False로 설정했으며 Window는 포커스 가능하도록 설정되었습니다. 그러나 이것은 도움이되지 못했습니다.
private void Window_KeyDown_1(object sender, System.Windows.Input.KeyEventArgs e)
{
Console.WriteLine("k");
}
나는 또한 문제가 초점이 있음을 발견했다 :
XAML은
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="463" Width="726" AllowsTransparency="False" PreviewKeyDown="Window_PreviewKeyDown" KeyDown="Window_KeyDown_1" WindowStartupLocation="CenterScreen" Focusable="True">
<Window.Background>
<RadialGradientBrush>
<GradientStop Color="#FF3EB5FF" Offset="1" />
<GradientStop Color="White" Offset="0" />
</RadialGradientBrush>
</Window.Background>
<Grid Name="grid1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="434*" />
<ColumnDefinition Width="270*" />
</Grid.ColumnDefinitions>
<Grid Margin="10,10,0,12" Name="EquiGrid" Focusable="False">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="198*" />
</Grid.ColumnDefinitions>
<Image Grid.ColumnSpan="2" Name="EquiImage" Stretch="Uniform" Margin="0,0,0,6" />
<Grid Grid.Column="1" Height="100" HorizontalAlignment="Left" Margin="489,90,0,0" Name="grid2" VerticalAlignment="Top" Width="200" />
</Grid>
<Label Content="Label" Height="28" Margin="14,12,12,0" Name="longLabel" VerticalAlignment="Top" Grid.Column="1" OpacityMask="White" BorderBrush="Red" Focusable="False">
<Label.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="White" Offset="0.025" />
<GradientStop Color="#FFDBDBDB" Offset="1" />
</LinearGradientBrush>
</Label.Background>
</Label>
<Label Content="Label" Height="28" Margin="14,46,12,0" Name="latLabel" VerticalAlignment="Top" Grid.Column="1" Focusable="False">
<Label.Background>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="White" Offset="0.025" />
<GradientStop Color="#FFDBDBDB" Offset="1" />
</LinearGradientBrush>
</Label.Background>
</Label>
<TextBlock Margin="14,80,12,54" Name="descriptionText" Padding="10" Text="" Grid.Column="1" Focusable="False"><TextBlock.Background><LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"><GradientStop Color="White" Offset="0.025" /><GradientStop Color="#FFDBDBDB" Offset="1" /></LinearGradientBrush></TextBlock.Background></TextBlock>
<Button Content="Load Image" Grid.Column="1" Margin="14,0,0,12" Name="button1" Height="36" VerticalAlignment="Bottom" HorizontalAlignment="Left" Width="124" Click="button1_Click" Focusable="False" />
<Button Content="Load XML" Grid.Column="1" Margin="0,0,12,12" Name="button2" Height="36" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="114" Click="button2_Click" Focusable="False" />
</Grid>
</Window>
및 핸들러입니다. 아이들은 집중할 수 없도록 설정되었지만 창에서 초점을 훔쳐서 행사를 중지합니다.
에서
유는 응용 프로그램 외부 키 스트로크를 의미? – PresleyDias
아니요, 내부에 있습니다. 할 매우 쉬운 것 같다! 그러나 작동하지 않습니다. –
오케이, 코드를 입력 해 주시겠습니까? 어떤 열쇠입니까? – PresleyDias