SolidColorBrush 类

用于 Silverlight 的 .NET Framework 类库
SolidColorBrush 类

使用纯色绘制区域。

命名空间:  System.Windows.Media
程序集:  System.Windows(在 System.Windows.dll 中)

 

C#
[ContentPropertyAttribute("Color", true)]
public sealed class SolidColorBrush : Brush

 

XAML 对象元素用法
<SolidColorBrush .../>
-or-
<SolidColorBrush>colorString</SolidColorBrush>
XAML 属性用法
<object property="predefinedColor"/>
- or -
<object property="#rgb"/>
- or -
<object property="#argb"/>
- or -
<object property="#rrggbb"/>
- or -
<object property="#aarrggbb"/>
- or -
<object property="sc#scR,scG,scB"/>
- or -
<object property="sc# scA,scR,scG,scB"/>

XAML 值

colorString

此表的其余部分中的颜色字符串约定中的任何一个。

predefinedColor

Colors 类(静态属性)预定义的颜色之一,或其他命名颜色之一。请参见"备注"。

rgb

三个字符的十六进制值。第一个字符指定颜色的 R 值,第二个字符指定 G 值,第三个字符指定 B 值。例如 #00F

argb

四个字符的十六进制值。第一个字符指定颜色的 A 值,第二个字符指定它的 R 值,第三个字符指定 G 值,第四个字符指定它的 B 值。例如 #F00F

rrggbb

六个字符的十六进制值。前两个字符指定颜色的 R 值,后两个字符指定其 G 值,最后两个字符指定其 B 值。例如 #0000FF

aarrggbb

八个字符的十六进制值。前两个字符指定颜色的 A 值,下两个字符指定其 R 值,接下来的两个字符指定其 G 值,最后两个字符指定其 B 值。例如 #FF0000FF

scA

颜色的 ScA 值是介于 0 和 1 之间的值。ScA 不作为 Color 属性直接公开。

scR

颜色的 ScR 值是介于 0 和 1 之间的值。ScR 不作为 Color 属性直接公开。

scG

颜色的 ScG 值是介于 0 和 1 之间的值。ScG 不作为 Color 属性直接公开

scB

颜色的 ScB 值是介于 0 和 1 之间的值。ScB 不作为 Color 属性直接公开。

SolidColorBrush 是最基本的画笔,用于将外观应用于对象。在 XAML 中,可以通过类型转换语法(该语法对关于指定颜色的字符串的意义使用了多个约定),将 SolidColorBrush 指定为属性值。其他画笔(如 LinearGradientBrush)需要属性元素语法。可以使用 SolidColorBrush 的对象元素语法,它适用于以下情况:

  • 您要为对象元素提供一个 Name,并在今后以其属性作为目标。

  • 您要将 SolidColorBrush 定义为资源。

  • 您要在 SolidColorBrush 上设置 Opacity

可以使用 ColorAnimationColorAnimationUsingKeyFrames,对 SolidColorBrush 进行动画处理。这通常不是通过对 SolidColorBrushColor 属性进行动画处理实现的,而是通过使用 Shape..::.Fill 等属性(采用了 Brush)的间接目标实现的。ColorAnimation 参考主题演示了一个示例。

SolidColorBrush 是作为类型转换语法的一部分创建的,该语法由 Brush 类和 SolidColorBrush 本身启用。该语法在以上"语法"部分的"XAML 属性用法"小节中进行了说明。使用此语法,您可以为采用 Brush 的属性指定一个字符串值,该字符串在多个可能的约定中进行解释,这些约定包含命名颜色、RGBScRGBRGBScRBG 都可以指定 alpha 值。有关 XAML 语法的更多信息,请参见 ColorBrush

预定义颜色

ms635533.JOLT_local_-485375713_art_color_table(zh-cn,VS.95).png

在代码中设置 SolidColorBrush 的预定义颜色

如果为 16 个定义为 Colors 静态值的颜色名称设置预定义颜色,则只会使用静态值作为设置值,此操作可通过构造函数重载或在构造后将 Color 设置为属性来完成。

//constructor technique
SolidColorBrush scb = new SolidColorBrush(Colors.Black);
//postconstruction technique
SolidColorBrush scb2 = new SolidColorBrush();
scb2.Color = Colors.Black;

在任何显示技术中,最常见的一个操作就是使用纯色绘制区域。为了完成这个任务,Silverlight 提供了 SolidColorBrush 类。以下各节介绍使用 SolidColorBrush 进行绘制的不同方式。

若要在 XAML 中用纯色绘制区域,请使用以下选项之一:

  • 通过名称选择一个预定义的 SolidColorBrush。例如,可以将 RectangleFill 设置为 RedMediumBlue。该示例使用预定义 SolidColorBrush 的名称来设置 RectangleFill

    运行此示例

    XAML
    <StackPanel>
    
      <!-- This rectangle's fill is painted with a red SolidColorBrush,
           described using a named color. -->
      <Rectangle Width="100" Height="100" Fill="Red" />
    </StackPanel>
  • 通过指定红色、绿色和蓝色的分量以组合成单一纯色,从 32 位调色板中选择一种颜色。从 32 位调色板中指定一种颜色时使用的格式为 #rrggbb,其中 rr 是指定红色相对量的两字符十六进制数,gg 指定绿色相对量,bb 指定蓝色相对量。此外,还可以按 aarrggbb 格式指定颜色,其中 aa 指定颜色的 alpha 值或透明度。通过此方法可以创建部分透明的颜色。在下面的示例中,使用十六进制表示法将 RectangleFill 设置为完全不透明的红色。

    运行此示例

    XAML
    <StackPanel>
    
      <!-- This rectangle's background is painted with a red SolidColorBrush,
           described using hexadecimal notation. -->
      <Rectangle Width="100" Height="100" Fill="#FFFF0000" />
    </StackPanel>
  • 使用属性元素语法可描述 SolidColorBrush。此语法更为详细,可用于指定其他设置,如画笔的不透明度。在下面的示例中,两个 Rectangle 元素的 Fill 属性设置为完全不透明的红色。第一支画笔的颜色使用预定义的颜色名称进行描述。第二支画笔的颜色使用十六进制表示法进行描述。

    运行此示例

    XAML
    <StackPanel>
     
      <!-- Both of these rectangles' fills are painted with red
           SolidColorBrush objects, described using object element
           syntax. -->
      <Rectangle Width="100" Height="100">
        <Rectangle.Fill>
          <SolidColorBrush Color="Red" />
        </Rectangle.Fill>
      </Rectangle>
    
      <Rectangle Width="100" Height="100" Canvas.Top="110">
        <Rectangle.Fill>
          <SolidColorBrush Color="#FFFF0000" />
        </Rectangle.Fill>
      </Rectangle> 
    </StackPanel>

System..::.Object
  System.Windows..::.DependencyObject
    System.Windows.Media..::.Brush
      System.Windows.Media..::.SolidColorBrush

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

posted on 2010-01-13 22:25  悟空空  阅读(8391)  评论(0编辑  收藏  举报

导航