我已经根据系统颜色定义了一些画笔资源,如下所示:
<SolidColorBrush
x:Key="brushKey1"
Color="{x:Static systemcolors.ControlColor}"
/>
(这样做是因为某些第三方代码希望找到定义的brushKey1
)。
但是我注意到以下代码也可以编译并且可以正常工作:
<SolidColorBrush
x:Key="brushKey1"
Color="{Dynamicresource {x:Static systemcolors.ControlBrush}}"
/>
第一个使用COLOR对象,第二个使用BRUSH。
为什么这样做? Dynamicresource
是否自动找出如何进行某种类型的转换或转换?
请注意,这不起作用:
<SolidColorBrush
x:Key="brushKey1"
Color="{x:Static systemcolors.ControlBrush}"
/>
该行将编译,但会引发运行时异常。