WPF从画笔资源

时间:2017-02-04 20:51:28

标签: wpf xaml resourcedictionary staticresource dynamicresource

我需要动态地从画笔中获取颜色 所以,我有一把刷子:

<SolidColorBrush x:Key="ExampleBrush" Color="Black" />

因此,它可能会获得颜色(例如,另一个画笔):

<SolidColorBrush x:Key="AnotherBrush" Color="{Binding Source={StaticResource ExampleBrush}, Path=Color}" />

所以,我的问题是如何才能获得动态资源呢?
只是因为如果我使用ExampleBrush更改资源文件 - AnotherBrush的颜色不会改变...

请随时提出任何问题。感谢

1 个答案:

答案 0 :(得分:0)

您无法使用Color将AnotherBrush的Color属性设置为ExampleBrush的DynamicResource。解决方法是使用DynamicResource直接引用ExampleBrush并绕过AnotherBrush:

<TextBlock Text="..." Foreground="{DynamicResource AnotherBrush}" />

你真的不需要AnotherBrush,因为只要AnotherBrush发生变化,Foreground的{​​{1}}仍会改变。结果将是相同的。

你也可以“绑定”到AnotherBrush,但是每当ExampleBrush更新时你都需要显式更新这个画笔:

TextBlock