XAML файлWPF keydown не захватывает побег?
PreviewKeyDown="Window_KeyDown"
.cs файл
private void Window_KeyDown(object sender, KeyEventArgs e)
{
System.Windows.Forms.MessageBox.Show(e.Key.ToString());
if (e.Key == Key.Escape)
{
this.Close();
}
}
KeyPreview установлена истина, хотя окно сообщения не отображается для ключа ESC. (в окне сообщений отображаются другие «нормальные» клавиши, такие как 0-9 и a-z). Как мне исправить это или найти способ вызвать что-то на ESC?
РЕДАКТИРОВАТЬ
Win.xaml
<Window x:Class="WindowsFormsApplication5.Win"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
WindowStyle="None"
PreviewKeyDown="Window_KeyDown">
</Window>
Win.xaml.cs
public partial class Win : Window
{
public Win()
{
InitializeComponent();
}
private void Window_KeyDown(object sender, KeyEventArgs e)
{
System.Windows.MessageBox.Show(e.Key.ToString());
if (e.Key == Key.Escape)
{
this.Close();
}
}
}
Form1.cs
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Win scrn = new Win();
scrn.Show();
}
}
Надеюсь, это должно устранить любые проблемы, извините за то, что вы не знаете об этом.
Почему вы используете Windows Forms 'MessageBox' с WPF? – poke
Повторяющийся вопрос, уже ответил на: http://stackoverflow.com/questions/7691713/how-to-close-a-window-in-wpf-on-a-escape-key –
Я не знаю, простейший способ Я знал о отображении всплывающего сообщения, действительно ли это актуально? – user1768788