Функционал, который вы описали, будет работать нормально. Проблема, скорее всего, связана с функцией или методом, в котором вы вызываете эту функцию.
Чтобы написать метод, который будет обрабатывать нажатие кнопки, как вы хотите, очень хорошо описано здесь: https://www.c -sharpcorner.com / forums / c-sharp-button-click-hold-and-release .
Надеюсь, это поможет вам, иначе просто спросите
Вот небольшая реализация, если это поможет:
public partial class MainWindow : Window
{
private void MainWindow_KeyDown(object sender, KeyEventArgs e)
{
Window editor = new MainWindow();
editor.Show();
this.Close();
}
private void MainWindow_KeyUP(object sender, KeyEventArgs e)
{
}
public MainWindow()
{
this.KeyDown += MainWindow_KeyDown;
this.KeyUp += MainWindow_KeyUP;
}
}