TextBoxの入力を有効にしつつKeyDownイベントを親に伝えない方法は?
Windows10、VisualStudio2015、.Net4.6、WPF、C# で開発しております。
TextBoxの入力を有効にしつつKeyDownイベントを親に伝えないようにするにはどうしたら良いのでしょうか。
MainWindow.xaml
<StackPanel KeyDown="StackPanel_KeyDown">
<TextBox KeyDown="TextBox_KeyDown" />
<TextBlock x:Name="memo" />
</StackPanel>
MainWindow.xaml.cs
private void StackPanel_KeyDown(object sender, KeyEventArgs e)
{
this.memo.Text = e.Key.ToString();
e.Handled = true; // TextBoxの入力も無効化されてしまう。何故?
}
private void TextBox_KeyDown(object sender, KeyEventArgs e)
{
//e.Handled = true; // TextBoxの入力が無効化
}
上記のように KeyDown イベントで e.Handled=true
をしてルーティングイベントを停止すれば良いと思ったのですが、親である StackPanel で停止させた場合でも TextBox の入力が何故かできなくなってしまいます。
どのように実装したらよいのでしょうか。