ResourceDictionary 中依赖于 VM 的绑定路径 属性
Bind Path in ResourceDictionary's dependant on VM property
我创建了一个 ResourceDictionary,它定义了一堆 System.Windows.Shapes.Path
,用于 Button ControlTemplate 的 ContentPresenter。
我想根据 ViewModel 属性 更改其中一个路径。如果 true
按钮使用 ResourceDictionary 中的一个路径,如果 false
使用不同的路径。
目前我只是在xaml中引用了一个StaticResource来直接指向我想要显示的路径。
最好的方法是什么?
您必须参考资源字典中的元素来修改样式中按钮的内容模板。
像这样:
<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
我创建了一个 ResourceDictionary,它定义了一堆 System.Windows.Shapes.Path
,用于 Button ControlTemplate 的 ContentPresenter。
我想根据 ViewModel 属性 更改其中一个路径。如果 true
按钮使用 ResourceDictionary 中的一个路径,如果 false
使用不同的路径。
目前我只是在xaml中引用了一个StaticResource来直接指向我想要显示的路径。
最好的方法是什么?
您必须参考资源字典中的元素来修改样式中按钮的内容模板。
像这样:
<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