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