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
值:
<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
的背景:
有关 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
的背景:
有关描述颜色的其他方法,请参阅 Xamarin.Forms 中的颜色。
纯色画笔
为方便起见,Brush
类提供了一组常用的 SolidColorBrush
对象,例如 AliceBlue
和 YellowGreen
。 下图显示了每个预定义画笔的颜色及其十六进制值: