Xamarin.Forms 画笔:纯色

SolidColorBrush 类派生自 Brush 类,用于用纯色绘制区域。 有多种方法可用于指定 SolidColorBrush 的颜色。 例如,可以使用 Color 值,或者使用 Brush 类所提供预定义 SolidColorBrush 对象之一指定其颜色。

SolidColorBrush 类定义 Color 类型的 Color 属性,该属性表示画笔的颜色。 此属性由 BindableProperty 对象提供支持,这意味着它可以作为数据绑定的目标,并进行样式设置。

SolidColorBrush 类还有 IsEmpty 方法,该方法返回 bool,表示画笔是否已分配颜色。

创建 SolidColorBrush

创建 SolidColorBrush 有三种主要方法。 可以从 Color 创建 SolidColorBrush,使用预定义画笔或使用十六进制表示法创建 SolidColorBrush

使用预定义颜色

Xamarin.Forms 包括一个类型转换器,可根据 Color 值创建 SolidColorBrush。 在 XAML 中,这允许从预定义的 Color 值创建 SolidColorBrush

<Frame Background="DarkBlue"
       BorderColor="LightGray"
       HasShadow="True"
       CornerRadius="12"
       HeightRequest="120"
       WidthRequest="120" />

在此示例中,用深蓝色 SolidColorBrush 绘制 Frame 的背景:

用预定义 Color 绘制的框架

或者,可以使用属性标记语法指定 Color 值:

<Frame BorderColor="LightGray"
       HasShadow="True"
       CornerRadius="12"
       HeightRequest="120"
       WidthRequest="120">
       <Frame.Background>
           <SolidColorBrush Color="DarkBlue" />
       </Frame.Background>
</Frame>

在此示例中,使用颜色是通过设置 SolidColorBrush.Color 属性指定的 SolidColorBrush 绘制 Frame 的背景。

使用预定义画笔

Brush 类定义一组常用 SolidColorBrush 对象。 以下示例使用其中一个预定义 SolidColorBrush 对象:

<Frame Background="{x:Static Brush.Indigo}"
       BorderColor="LightGray"
       HasShadow="True"
       CornerRadius="12"
       HeightRequest="120"
       WidthRequest="120" />       

等效 C# 代码如下:

Frame frame = new Frame
{
    Background = Brush.Indigo,
    BorderColor = Color.LightGray,
    // ...
};

在此示例中,用靛蓝色 SolidColorBrush 绘制 Frame 的背景:

用预定义 SolidColorBrush 绘制的框架

有关 Brush 类提供的预定义 SolidColorBrush 对象列表,请参阅纯色画笔

使用十六进制表示法

还可以使用十六进制表示法创建 SolidColorBrush 对象。 使用此方法时,根据要组合成单一颜色的红色、绿色和蓝色量指定颜色。 使用十六进制表示法指定颜色的主要格式是 #rrggbb,其中:

  • rr 是一个两位数的十六进制数字,用于指定红色的相对量。
  • gg 是一个两位数的十六进制数,用于指定绿色的相对量。
  • bb 是一个两位数的十六进制数字,用于指定蓝色的相对量。

此外,可以将颜色指定为 #aarrggbb,其中 aa 指定颜色的 alpha 值或透明度。 使用此方法能够创建部分透明的颜色。

以下示例使用十六进制表示法设置 SolidColorBrush 的颜色值:

<Frame Background="#FF9988"
       BorderColor="LightGray"
       HasShadow="True"
       CornerRadius="12"
       HeightRequest="120"
       WidthRequest="120" />

在此示例中,用具有鲑鱼色的 SolidColorBrush 绘制 Frame 的背景:

用 SolidColorBrush(使用十六进制表示法创建)绘制的框架

有关描述颜色的其他方法,请参阅 Xamarin.Forms 中的颜色

纯色画笔

为方便起见,Brush 类提供了一组常用的 SolidColorBrush 对象,例如 AliceBlueYellowGreen。 下图显示了每个预定义画笔的颜色及其十六进制值:

颜色表,包括颜色样本、颜色名称和十六进制值