2

から継承するカスタム コントロールがありFrameworkElementます。Visual透明な領域を含む が含まれています。コントロール領域全体をヒット テストに応答させようとしていますが、現時点では、の透明な領域を表示するコントロールの一部をクリックするVisualと、クリックが下のレイヤーに渡されます。

ハックを使用せずにコントロール全体をヒット テスト可能にする方法はありますか?

Visual白の背景をペイントしたりBorder、同じイベント ハンドラーが設定されたカスタム コントロールの周りにを追加したりするような手法は避けたいと思います。

前もって感謝します!

4

2 に答える 2

4

透明なブラシを使用するだけで、ヒット テストに応答します。

たとえば、背景ブラシが null の場合、ヒット テストはそのまま通過します。

背景または塗りつぶし領域として Brushes.Transparent を使用すると、ヒット テストで機能します。

于 2012-06-05T00:53:52.177 に答える
1

Grid などの一部のクラスのデフォルトである Background または Fill = "{x:Null}" を使用することは、Background または Fill = "Transparent" と同じではありません。背景/塗りつぶしの色として透明を設定すると機能するはずです。

于 2012-06-05T00:57:42.380 に答える