好的,这一直困扰着我,我没有找到任何关于 Color
和 SolidColorBrush
之间差异的明确答案,所以我想知道是否有人能够对此进行解释。
我已经知道用法上的区别,例如我可以在依赖项中使用 SolidColorBrush
,就像我说的那样;
<SolidColorBrush x:Key="BlahBrush" Color="#FFFFFFFF"/>
<Border Background="{StaticResource BlahBrush}"/>
但是如果我将同一资源放入EasingColorKeyFrame
中,就会像这样;
<EasingColorKeyFrame KeyTime="0" Value="{StaticResource BlahBrush}" />
然后它会吐槽我使用了SolidColorBrush,但是我可以通过将其声明为一种资源链回到Color来绕过这个问题,就像这样:
<Color x:Key="OriginalBlahBrush">#FFFFFFFF</Color>
<SolidColorBrush x:Key="BlahBrush" Color="{StaticResource OriginalBlahBrush}"/>
只使用SolidColorBrush
的Color
属性也可以获得相同的效果,例如:
<SolidColorBrush>
<SolidColorBrush.Color>
<Color A="255" R="0" G="0" B="255" />
</SolidColorBrush.Color>
</SolidColorBrush>
所以我想问的是,Colors和SolidColorBrush类之间的本质区别是什么,以及它们在使用中出现奇怪问题的原因是什么?也就是说,如果它们都只是提供了一个纯色,那么为什么要有System.Windows.Media.Colors和System.Windows.Media.SolidColorBrush之分呢?
好奇的人想知道! :)