我有一个路径对象的样式,当我编写一个触发器时,这条路径被边框包围,直到我进入实际的路径对象才起作用。
风格
<Style TargetType="Path">
<Setter Property="Stroke" Value="{DynamicResource CloseButtonClr}"></Setter>
<Setter Property="Stretch" Value="Uniform"></Setter>
<Setter Property="StrokeThickness" Value="3"></Setter>
<Style.Triggers>
<Trigger Property="Border.IsMouseOver" Value="True">
<Setter Property="Stroke" Value="{DynamicResource LableClr}"/>
</Trigger>
</Style.Triggers>
</Style>
<Border Width="20" Grid.Column="2" Background="Transparent" Margin="0,0,5,0" >
<Path Data="M0,0 L1,1 M0,1 L1,0" />
</Border>
这是我的代码,如果我进入路径对象,那么触发器正在工作,如果进入边框和路径对象之间触发器不起作用,请帮助我wt我错过了谢谢
使用DataTrigger
绑定到Border
的IsMouseOver
属性:
<Style TargetType="Path">
<Setter Property="Stroke" Value="{DynamicResource CloseButtonClr}"></Setter>
<Setter Property="Stretch" Value="Uniform"></Setter>
<Setter Property="StrokeThickness" Value="3"></Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Stroke" Value="{DynamicResource LableClr}"/>
</Trigger>
<DataTrigger Binding="{Binding IsMouseOver, RelativeSource={RelativeSource AncestorType=Border}}" Value="True">
<Setter Property="Stroke" Value="{DynamicResource LableClr}"/>
</DataTrigger>
</Style.Triggers>
</Style>
Path
样式中的Trigger
只能绑定到Path
本身的属性。路径Border.IsMouseOver
不会绑定到父Border
元素。它将绑定到Path
的IsMouseOver
属性。Border
和Path
都继承自实际定义属性的UIElement
。