好的,这一直困扰着我,我还没有真正找到任何明确的答案,因为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}"/>
并且它会很好....但是我可以再次利用Color
的{{1}}属性并且可以获得相同的行为,而不会有类似的分离;
SolidColorBrush
所以我想我的问题是,Colors和SolidColorBrush类之间的固有区别是什么,以及它们使用中奇怪怪癖的原因是什么?我猜想System.Windows.Media.Colors与System.Windows.Media.SolidColorBrush的原因是什么,如果它们都只是给出了一个坚实的颜色?
询问心灵想要知道! :)
答案 0 :(得分:2)
来自Brush的备注部分:
画笔使用其输出“绘制”或“填充”某个区域。不同的画笔 有不同类型的输出。有些画笔用一个画一个区域 纯色,其他具有渐变,图案,图像或绘图。该 以下列表描述了不同类型的WPF画笔:
•SolidColorBrush:绘制纯色区域。
•LinearGradientBrush:使用线性渐变绘制区域。
•RadialGradientBrush:使用径向渐变绘制区域。
•ImageBrush:用图像绘制一个区域(用。表示) ImageSource对象)。
•DrawingBrush:使用绘图绘制区域。图纸可能包括 矢量和位图对象。
•VisualBrush:使用Visual对象绘制区域。一个VisualBrush 使您能够复制应用程序的一部分内容 进入另一个地区;它对于创建反射效果非常有用 和放大屏幕的部分。
答案 1 :(得分:0)
Color
是SolidColorBrush
的组成部分,其中一个构造函数具有Color-type参数。如果要填充表单上的某些组件,则首先需要创建颜色,然后根据之前创建的颜色创建SolidColorBrush
。就像真正的透明画笔和调色板一样,您需要在其中浸泡画笔以绘画/填充某些东西。
Color
对象更“底层”,您可以使用A,R,G,B参数设置一些颜色。
SolidColorBrushes
是一种用于填充对象的画笔(来自System.Windows.Media.Brush的继承)。您可以在一个画笔中组合颜色。
答案 2 :(得分:0)
我的理解如下。