Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 使用触发器更改ResourceDictionary中声明的路径的颜色_Wpf_Triggers - Fatal编程技术网

Wpf 使用触发器更改ResourceDictionary中声明的路径的颜色

Wpf 使用触发器更改ResourceDictionary中声明的路径的颜色,wpf,triggers,Wpf,Triggers,我正在创建一个单选按钮样式。单选按钮具有承载ContentControl的边框。ContentControl的内容属性设置为在单独的ResourceDictionary中声明的路径(FemaleVector)。当选中radiobutton时,如何更改路径的Fill属性?以下是我到目前为止的情况。我可以更改边框的背景属性,但设置ContentControl的前景属性不会更改路径的颜色。(没想到这会奏效。) 我不喜欢在我的样式中有路径的长数据属性,所以我将它们移动到了一个单独的ResourceD

我正在创建一个单选按钮样式。单选按钮具有承载ContentControl的边框。ContentControl的内容属性设置为在单独的ResourceDictionary中声明的路径(FemaleVector)。当选中radiobutton时,如何更改路径的Fill属性?以下是我到目前为止的情况。我可以更改边框的背景属性,但设置ContentControl的前景属性不会更改路径的颜色。(没想到这会奏效。)


我不喜欢在我的样式中有路径的长数据属性,所以我将它们移动到了一个单独的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>