質問

テキストボックスを含むウィンドウを持っています。

ウィンドウとテキストボックスの両方で、PreviewMousedOubleClichandlerを追加します。

ウィンドウ内のハンドラ:

private void PreviewMouseDoubleClickHandler(object sender, MouseButtonEventArgs e)
{
    Debug.WriteLine("handler in the window");
    e.Handled = true;
}
.

TextBoxのハンドラ:

private void PreviewMouseDoubleClickHandler(object sender, MouseButtonEventArgs e)
{
    Debug.WriteLine("handler in the textBox");
    e.Handled = true;
}
.

テキストボックスをダブルクリックすると、最初にウィンドウのハンドラに移動し、デバッグ行を印刷してからイベントを処理することを期待してください。イベントがすでにウィンドウによって処理されているので、テキストボックスのハンドラは発射しないと思いました。

これはこのように機能しません:私は両方のハンドラが発射されました。

奇妙なことは、PreviewMouseDownイベントでうまく機能します。私がPreviewMouseDownEventsを正確に同じことをしているなら、私は私が期待している行動を取得します、そしてそれは。

それでは、これはDoubleClickイベントでは機能しないのですか?私は何か悪いことをしていますか?それはこのように機能することになっていますか? DoubleClickイベントは私がトンネリングの利点を使うのを防ぐ別の方法で管理されていますか?

役に立ちましたか?

解決

現象は設計によるものです。 http://msdn.microsoft.com/en-us/library/system.windows.controls.control.previewmousedoubleClick.aspx

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top