Wpf 使用触发器更改ResourceDictionary中声明的路径的颜色
我正在创建一个单选按钮样式。单选按钮具有承载ContentControl的边框。ContentControl的内容属性设置为在单独的ResourceDictionary中声明的路径(FemaleVector)。当选中radiobutton时,如何更改路径的Fill属性?以下是我到目前为止的情况。我可以更改边框的背景属性,但设置ContentControl的前景属性不会更改路径的颜色。(没想到这会奏效。)Wpf 使用触发器更改ResourceDictionary中声明的路径的颜色,wpf,triggers,Wpf,Triggers,我正在创建一个单选按钮样式。单选按钮具有承载ContentControl的边框。ContentControl的内容属性设置为在单独的ResourceDictionary中声明的路径(FemaleVector)。当选中radiobutton时,如何更改路径的Fill属性?以下是我到目前为止的情况。我可以更改边框的背景属性,但设置ContentControl的前景属性不会更改路径的颜色。(没想到这会奏效。) 我不喜欢在我的样式中有路径的长数据属性,所以我将它们移动到了一个单独的ResourceD
我不喜欢在我的样式中有路径的长数据属性,所以我将它们移动到了一个单独的ResourceDictionary中。我是否应该将路径放回我的风格中,而不是将其保存在单独的资源字典中
编辑:类似的问题是和。如果样式没有在某处重用,我个人会将其保存在“本地样式资源”部分。这样你就能看到更大的图景。否则,最好将其保存在ResourceDictionary:) 无论哪种方式,您都应该能够使用以下内容更改填充属性:
<Setter Property="Content.Fill" TargetName="content" Value="Blue"/>
如果这不起作用,我建议采取以下几种方法:
可以在Xaml中使用Trigger.EnterActions。也许通过动画设置属性会有更好的效果?带有setter的ControlTemplate触发器有时会受到限制
还有相对绑定。但你得小心点。(如果您打算使其可重复使用)
在FemaleVector样式中,可以将填充绑定到ContentControl前景。在谷歌上寻找相对的搜索
还有财产继承。如果在FemaleVector中设置填充颜色,则需要使用样式。例如:
<Style>
<Setter Property="Fill" Value="BLACK" />
</Style>
您可以稍后设置ContentControls样式并在其中添加触发器,如:
<ContentControl.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding={Binding IsChecked, RelativeSource={RelativeSource AncestorType=RadioButto}} Value=TRUE>
<Setter Property="Path.Fill" Value="BLACK" />
</DataTrigger>
嗨,谢谢你抽出时间。我尝试了你的建议,但它无法编译:没有找到“类型‘内容’的投诉”。此外,该路径可能会在其他地方使用。添加了更多选项。我知道他们中至少有一个要工作。祝你好运:)
<ContentControl.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding={Binding IsChecked, RelativeSource={RelativeSource AncestorType=RadioButto}} Value=TRUE>
<Setter Property="Path.Fill" Value="BLACK" />
</DataTrigger>