0
부모 창이 keyup 이벤트가 연결되도록 설계되었습니다. MainWindow를 같은 간다 :부모 창이 WPF의 자식 창에서 Keyup 이벤트를 처리합니다.
가public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void Window_KeyUp(object sender, KeyEventArgs e)
{
if (e != null && e.Key == Key.Return)
{
MessageWindow msgWindow = new MessageWindow("KEY UP");
msgWindow.Show();
}
}
}
윈도우를 닫 OK 버튼을 갖는 MessageWindow 같은 간다 :
public partial class MessageWindow : Window
{
public MessageWindow()
{
InitializeComponent();
}
public MessageWindow(string message) : this()
{
txtMess.Text = message;
}
private void btnOk_Click(object sender, RoutedEventArgs e)
{
this.Close();
}
}
을 [복귀] 부모에 새로운 자식 창으로 입력 키를 수신 초기화되고 표시됩니다. Tab 키를 눌러 확인 단추에 초점을두고 Enter 키를 누릅니다. 하위 MessageWindow가 다시 팝업됩니다.
이유 : 부모 창은 자식 창에서 RETURN 키를 눌러 닫을 때 KeyUp 이벤트를받습니다.
FLAG를 사용하는 대신 KeyUp 이벤트 처리를 상위 처리로 중단하는 방법을 제공해주십시오.
대단히 감사합니다! – Nishant
이 답변은 정확 합니다만, PreviewX 이벤트가 루트 요소에서 가장 중첩 된 요소로 터널링되는 반면 일반 X 이벤트는 가장 중첩 된 요소에서 루트 요소로 바뀌기 때문에이 답변이 추가되었습니다. 이것은 루트 요소가 터널링 된 이벤트를 처리 할 수있는 첫 번째 기회와 버블 링 된 이벤트를 처리 할 수있는 마지막 기회를 얻음을 의미합니다. – Fenton