2

次のような長方形があるとします。

<Rectangle Grid.Column="1"
           Stroke="Red"
           StrokeDashArray="4.0 4.0"
           StrokeThickness="{Binding Path=CurrentThickness}"
           Visibility="{Binding Path=VisibleRectangle,
                                Converter={StaticResource VisibilityConverter}}"
           MouseUp="HandleMouseUp" />

これは、MouseUp イベントの四角形自体でヒット テストを実行するために機能します。ただし、長方形の一般的な幅は 1px 幅であるため、長方形の端をクリックするのは困難です。Rectangle のストロークの「有効なクリック ボーダー サイズ」を、そのストロークの視覚的な外観よりも大きくしたいと考えています。(たとえば、長方形が 1px 幅で描画されているとしますが、マウス クリック領域は実際には 3px 幅です)

そのようなことは可能ですか、または Rectangle のストロークの太さを増やさなければなりませんか?

4

2 に答える 2

2

ハッキーな解決策:

同じ場所に「透明な」長方形を置き、長方形を作りますIsHitTestVisible="False"

<Rectangle x:Name="Clickable"
           Grid.Column="1"
           MouseUp="HandleMouseUp"
           Fill="#01FFFFFF"/>

<Rectangle Grid.Column="1"
           Stroke="Red"
           StrokeDashArray="4.0 4.0"
           StrokeThickness="{Binding Path=CurrentThickness}"
           IsHitTestVisible="False"
           Visibility="{Binding Path=VisibleRectangle,
                                Converter={StaticResource VisibilityConverter}}"/>
于 2013-10-07T23:08:59.030 に答える