2016-03-06 5 views
-1

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(); 
    } 
} 

Надеюсь, это должно устранить любые проблемы, извините за то, что вы не знаете об этом.

+1

Почему вы используете Windows Forms 'MessageBox' с WPF? – poke

+0

Повторяющийся вопрос, уже ответил на: http://stackoverflow.com/questions/7691713/how-to-close-a-window-in-wpf-on-a-escape-key –

+0

Я не знаю, простейший способ Я знал о отображении всплывающего сообщения, действительно ли это актуально? – user1768788

ответ

0

Возможно WPF MessageBox является отношение

Это прекрасно работает для меня

<Window PreviewKeyDown="wPreviewKeyDown" 

private void wPreviewKeyDown(object sender, KeyEventArgs e) 
{ 
    MessageBox.Show(e.Key.ToString()); 
    if (e.Key == Key.Escape) 
     this.Close(); 
} 

У вас есть еще один элемент управления, который, возможно, обработки события?

+0

См. Правки, спасибо – user1768788

 Смежные вопросы

  • Нет связанных вопросов^_^