私はこのようなControlTemplate
で定義されたボタンがあります。私は、任意の場所をクリックするとWPFボタンのControlTemplateのは間違っclickboxに与え
<Button VerticalAlignment="Bottom" HorizontalAlignment="Right" Click="ButtonBase_OnClick">
<Button.Template>
<ControlTemplate TargetType="Button">
<Path Data="M-20,-60L-20,-20 -60,-20 -60,20 -20,20 -20,60 20,60 20,20 60,20 60,-20 20,-20 20,-60z">
<Path.Style>
<Style TargetType="Path">
<Setter Property="Stroke" Value="Red" />
<Setter Property="Fill" Value="Blue" />
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="StrokeThickness" Value="2" />
</Trigger>
</Style.Triggers>
</Style>
</Path.Style>
</Path>
</ControlTemplate>
</Button.Template>
</Button>
が、+
形状の右下の部分、ButtonBase_OnClick
(およびICommand
をその問題のために)トリガーされません。
Iは、最終的に、私はControlTemplate
に負の値を必要とする理由である特定の位置を中心Canvas
でButton
を使用する予定。
どうすればButtonBase_OnClick
がのControlTemplate
に同じ状態を維持しながらトリガーすることができますか?
編集:
WPF. Is it possible to do ellipse “rectangle bounds” hittest?で説明したように私は私のControlTemplate
にPath
周りGrid
を配置しようとしたが、それはButton
のClick
イベントをトリガしていないようです。
内の[WPFの可能性の重複をあなたのパスを置きます。楕円 "矩形境界"の打撃を行うことは可能ですか?](https://stackoverflow.com/questions/39703613/wpf-is-it-possible-to-do-ellipse-rectangle-bounds-hittest) – Mat
@Mat問題はヒットテストではなく、ヒットテストボックスが誤って配置されているか、位置がずれているため、「グリッド」をクリックするとクリックがボタンにルーティングされません。 – ManIkWeet