Color 和 SolidColorBrush 的区别澄清

Chr*_* W. 6 silverlight wpf graphics xaml colors

好吧,这一直困扰着我,我还没有真正找到任何明确的答案作为Color&之间差异的原因/原因,SolidColorBrush所以我想知道是否有人可以就此教育我。

我已经知道用法的差异,例如我可以SolidColorBrush在依赖项中使用 a就像我说的那样;

<SolidColorBrush x:Key="BlahBrush" Color="#FFFFFFFF"/>
<Border Background="{StaticResource BlahBrush}"/>
Run Code Online (Sandbox Code Playgroud)

但是然后说我以EasingColorKeyFrame某种方式抛出相同的资源;

<EasingColorKeyFrame KeyTime="0" Value="{StaticResource BlahBrush}" />
Run Code Online (Sandbox Code Playgroud)

然后它会因为它是一个 SolidColorBrush 而吐槽我......除非我可以通过资源链将它声明回Color类似的东西来解决这个问题;

<Color x:Key="OriginalBlahBrush">#FFFFFFFF</Color>
<SolidColorBrush x:Key="BlahBrush" Color="{StaticResource OriginalBlahBrush}"/>
Run Code Online (Sandbox Code Playgroud)

它会很好....但是我又可以Color单独使用 的属性SolidColorBrush并且可以获得相同的行为而不会被分开,就像;

<SolidColorBrush>
     <SolidColorBrush.Color>
        <Color A="255" R="0" G="0" B="255" />
     </SolidColorBrush.Color>
</SolidColorBrush>
Run Code Online (Sandbox Code Playgroud)

所以我想我的问题是,Colors 和 SolidColorBrush 类之间的内在区别是什么,以及它们在使用中奇怪的怪癖的原因是什么?又名我猜 System.Windows.Media.Colors 与 System.Windows.Media.SolidColorBrush 的原因是什么,如果它们都只是给出了一个该死的纯色?

好奇心想知道!:)

Cle*_*ens 5

Brush的备注部分:

Brush 用它的输出“绘制”或“填充”一个区域。不同的画笔有不同类型的输出。一些画笔使用纯色绘制区域,其他画笔使用渐变、图案、图像或绘图。以下列表描述了不同类型的 WPF 画笔:

• SolidColorBrush:用纯色绘制区域。

•LinearGradientBrush:使用线性渐变绘制区域。

•RadialGradientBrush:使用径向渐变绘制区域。

•ImageBrush:用图像(由ImageSource 对象表示)绘制区域。

•DrawingBrush:用绘图绘制一个区域。绘图可以包括矢量和位图对象。

•VisualBrush:用Visual 对象绘制一个区域。VisualBrush 使您能够将应用程序的一个部分的内容复制到另一个区域;它对于创建反射效果和放大屏幕部分非常有用。