0

ポップアップのあるユーザーコントロールがあります(ユーザーコントロールよりも大きいです)。ユーザーが画面の別の部分をクリックしたときにポップアップを非表示にします。(標準のコンボボックスの動作)これを行うにはどうすればよいですか?イベントpointer_clickをリッスンしようとしましたが、座標を取得できましたが、ユーザーがポップアップをクリックしたかどうかを手動で確認するのは難しいでしょう(その座標にどのコントロールがあるかを確認する方法はありますか?)

前もって感謝します

4

2 に答える 2

1

これがWinRTアプリの場合は、単純に

var popup = new Popup();
popup.IsLightDismissEnabled = true;

通常のxamlの場合は、フォーカスを失ったらすぐに却下しませんか?

于 2012-08-23T13:00:16.300 に答える
0

いくつかの可能性があります。-VisualTree.Hittestメソッドを使用して、そのポイントのすべてのコントロールを取得します。結果にポップアップが含まれていない場合は非表示にします。-送信者オブジェクト(またはRoutedEventArgsオブジェクト)がある場合は、VisualTreeを使用して検索できます。ポップアップ用。(rekursiv)見つからない場合->非表示

于 2012-08-23T13:11:44.840 に答える