Но каждая ключевая работа, я могу нажать пробел или любое слово, но стрелки или клавиши управления не
CoreWindow.CharacterReceived событие вызывается, когда новый характер принимается входной очереди. A символ - это единственный визуальный объект, используемый для представления текста, цифр или символов. Стрелки или клавиши управления не представляют персонажа. Таким образом, CoreWindow.CharacterReceived событие не будет срабатывать при нажатии этих клавиш.
Если вы хотите распознать, какую клавишу на клавиатуре, включая стрелку и управление, а также другие ключи, которые не представляют какой-либо символ нажат, используйте UIElement.KeyDown или UIElement.KeyUp события (Происходит, когда клавиша клавиатуры нажата/отпущена, когда UIElement имеет фокус) вместо этого как кра, упомянутое выше.
Ниже приводится простой код, который я проверил:
MainPage.xaml:
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center">
<!--Define a control which can have focus and accept input-->
<TextBox Header="Get Focus and Press Any key on Keyboard" x:Name="txt1" KeyDown="txt1_KeyDown" />
</StackPanel>
MainPage.xaml.cs:
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
private async void txt1_KeyDown(object sender, KeyRoutedEventArgs e)
{
// Right Arrow key Pressed
if (e.Key == Windows.System.VirtualKey.Right)
{
// Do something
Debug.WriteLine(e.Key.ToString());
await new MessageDialog(e.Key.ToString()).ShowAsync();
}
// Other Keys Pressed
await new MessageDialog(e.Key.ToString()).ShowAsync();
}
вы уверены, что вы получите отладчик по этому методу? – Neel
Да, я сделал, я получаю каждую клавишу, но вверх, вниз, влево, вправо, управление, alt – Onelio