さまざまなボタンにさまざまなグラフィックを描画するPathGeometryインスタンスがたくさんあります。そこで、パスを表示するためのボタンタイプを作成しました。これにより、ボタンの状態に応じてPath.Strokeが更新されます。したがって、無効にすると灰色になり、マウスを上に置くと色が異なります。標準的なもの...
<Style x:Key="BasePathButton" TargetType="{x:Type Button}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Button}">
<Border Name="Border"
<Path x:Name="Path" />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="Path" Property="Stroke" Value="Gray"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Path" Property="Stroke" Value="Green"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="Path" Property="Stroke" Value="Red"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
しかし、明らかに、ボタンインスタンスごとに異なるPath.Dataが必要です。そこで、Path.Dataを次のように設定するためのBasedOnスタイルを作成します...
<Style x:Key="NLB" TargetType="{x:Type Button}" BasedOn="{StaticResource BasePathButton}">
<Setter TargetName="Path" Property="Data" Value="{StaticResource LeftPathGeometry}"/>
</Style>
...しかし、これはTargetName="Path"が見つからないというエラーで失敗します。これを修正する方法はありますか?または、使用するジオメトリでパラメータ化されたパスを持つボタンを作成するためのより良い方法はありますか?