Я пытаюсь что-то сделать, когда нажата клавиша, но моя клавиатура, похоже, не регистрируется. Я пытаюсь что-то сделать с любыми ключевыми не конкретными.Ввод ключа не регистрируется
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Input;
namespace KeyDown
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
public static IEnumerable<Key> KeysDown()
{
foreach (Key key in Enum.GetValues(typeof(Key)))
{
if (Keyboard.IsKeyDown(key))
yield return key;
}
}
private void MainGrid_KeyDown(object sender, KeyEventArgs e)
{
if(KeysDown().Any())
{
MessageBox.Show("Key pressed");
}
}
}
}
Ничего не происходит, MainGrid
является сфокусированным.
Просмотрено: How to detect if any key is pressed но все же ничего не происходит.
Вы только что определили обработчик событий. Я не вижу, где вы на самом деле зарегистрированы на мероприятии. – Tal87
Не 'if (Keyboard.IsKeyDown (Key.Return))' способ зарегистрировать любой ключ? – Simon
Это WPF! Не asp.net !. – marko