好吧,这一直困扰着我,我还没有找到任何明确的答案,作为Color和SolidColorBrush之间差异的原因/原因,所以我想知道是否有人能在这方面教育我。
我已经知道了用法上的差异,例如,我可以在依赖项中使用SolidColorBrush,就像我说的那样;
<SolidColorBrush x:Key="BlahBrush" Color="#FFFFFFFF"/>
<Border Background="{StaticResource BlahBrush}"/>但是如果我把相同的资源投到一个EasingColorKeyFrame中,就像;
<EasingColorKeyFrame KeyTime="0" Value="{StaticResource BlahBrush}" />然后它会对我说它是一个SolidColorBrush....except,然后我就可以通过一个资源链声明它,类似于一个Color;
<Color x:Key="OriginalBlahBrush">#FFFFFFFF</Color>
<SolidColorBrush x:Key="BlahBrush" Color="{StaticResource OriginalBlahBrush}"/>它只是fine....but,然后,我可以单独使用SolidColorBrush的Color属性,并且可以得到相同的行为,而不像分离一样;
<SolidColorBrush>
<SolidColorBrush.Color>
<Color A="255" R="0" G="0" B="255" />
</SolidColorBrush.Color>
</SolidColorBrush>所以我想我的问题是,颜色和SolidColorBrush类的固有区别是什么,以及它们在用法上奇怪的原因?我想,如果System.Windows.Media.Colors和System.Windows.Media.SolidColorBrush都给出了一个坚实的颜色,那他们为什么要对他们进行对决呢?
询问的人想知道!:)
发布于 2014-01-30 21:18:10
来自刷子中的备注部分
画笔“油漆”或“填充”一个区域的输出。不同的画笔有不同的输出类型。一些画笔用实心颜色画一个区域,另一些用渐变、图案、图像或绘图。下面的列表描述了不同类型的WPF刷子: ·SolidColorBrush:用实心颜色绘制一个区域。 ·LinearGradientBrush:用线性梯度绘制一个区域。 ·RadialGradientBrush:用径向梯度绘制一个区域。 ·ImageBrush:用图像(由ImageSource对象表示)绘制区域。 ·画笔:用一幅画画一个区域。绘图可以包括矢量和位图对象。 ·VisualBrush:用视觉对象绘制区域。VisualBrush使您能够将应用程序的一个部分的内容复制到另一个区域;它对于创建反射效果和放大屏幕的部分非常有用。
发布于 2019-06-24 03:01:39
我的理解如下。
发布于 2019-05-06 15:52:26
Color是SolidColorBrush的一个组件,其中一个构造函数具有颜色类型参数。如果您想要填充表单上的某些组件,首先需要创建颜色,然后根据前面创建的颜色创建SolidColorBrush。这就像一个真正清晰的画笔和调色板,在那里你需要浸泡画笔来绘画/填充一些东西。Color对象更“低级”,您可以设置一些颜色与A,R,G,B-参数。SolidColorBrushes是填充对象的一种画笔(从System.Windows.Media.Brush继承)。你可以在一个刷子里组合颜色。
https://stackoverflow.com/questions/21467296
复制相似问题