我有一个绘制各种图形的不同按钮的许多的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这样的支持算法FMP风格。
<Style x:Key="NLB" TargetType="{x:Type Button}" BasedOn="{StaticResource BasePathButton}">
<Setter TargetName="Path" Property="Data" Value="{StaticResource LeftPathGeometry}"/>
</Style>
...但这个失败,并的TargetName =“路径”不能发现错误。 任何想法如何解决这一问题? 或者,也许有更好的方式来创建具有与几何参数使用的路径的按钮?