我创建了一个ResourceDictionary,它定义了一组在Button ControlTemplate的ContentPresenter中使用的System.Windows.Shapes.Path
。
我想基于ViewModel属性更改其中一个路径。如果true
按钮使用ResourceDictionary中的一个路径,如果false
是另一个路径。
目前我只是在xaml中引用一个StaticResource来直接指向我想要显示的路径。
最好的方法是什么?
答案 0 :(得分:1)
您必须通过引用资源字典中的元素来修改样式中按钮的内容模板。
这样的事情:
<Button.Style>
<Style TargetType="Button">
<Setter Property="ContentTemplate" Value="{StaticResource cp2}"></Setter>
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="ContentTemplate" Value="{StaticResource cp1}"></Setter>
</Trigger>
</Style.Triggers>
</Style>
</Button.Style>
我已将鼠标悬停在属性上作为我更改内容模板的触发器。
您可以使用DataTrigger
代替Trigger