0
この楕円をスタイルのControlTemplateに適用したとします。今、すぐにマウスがこの要素がマウスで撮影します。この楕円に接触するようヒットテスト領域を変更する
<Ellipse x:Name="Ellipse"
Fill="#C0FFFFFF"
Stroke="{StaticResource SpecialColor}"
StrokeThickness="2"/>
を(例えば:これは、スライダーのサムのに使用されます)。衝突ジオメトリを変更するにはどうすればよいですか?これを行うためのXAMLのみの方法はありますか?
私は、マウスが楕円の中央にあるときにそれをキャプチャするので、衝突領域を小さくしたいとしましょう。
また、マウスを楕円に近づけると楕円のサイズよりも大きくなるようにしたいかもしれません。
最も簡単な方法(XAMLのみ)は、「Fill = "Transparent"」という楕円を少し大きく(または小さく)配置することです。 Transparent(nullとは対照的に)は、ヒットテストの回数をカウントします。 –
ダミーの楕円を大きく透明にするのは良い意見です。楕円はもっと小さいのはどうでしょうか?私が外側の楕円をいくつかのブラシで塗りつぶした場合、ヒットテストの対象となるでしょう –
Ernoが彼の答えで指摘したように、透明な楕円上でマウスイベントを処理する必要があります。現在の楕円をデコレータ、透明な楕円を「実際」のものと考えてください。 –