线性渐变画笔

Browse sample. 浏览示例

.NET Multi-platform App UI (.NET MAUI) LinearGradientBrush 类派生自 GradientBrush 类,该类使用线性渐变绘制区域,线性渐变沿一条称为渐变轴的线混合两种或多种颜色。 GradientStop 对象用于指定渐变的颜色及其位置。 有关 GradientStop 对象的详细信息,请参阅渐变

LinearGradientBrush 类定义以下属性:

  • StartPoint,类型为 Point,表示线性渐变的起始二维坐标。 此属性的默认值为 (0,0)。
  • EndPoint,类型为 Point,表示线性渐变的二维终点坐标。 此属性的默认值为 (1,1)。

这些属性由 BindableProperty 对象提供支持;也就是说,它们可以作为数据绑定的目标,并能进行样式设置。

LinearGradientBrush 类还有一个 IsEmpty 方法,即返回一个 bool 表示画笔是否已分配给任何 GradientStop 对象。

注意

还可以使用 linear-gradient() CSS 函数创建线性渐变。

创建 LinearGradientBrush

线性渐变画笔的渐变止点沿渐变轴定位。 可以使用画笔的 StartPointEndPoint 属性更改渐变轴的方向和大小。 通过操作这些属性,可以创建水平、垂直和对角线渐变、反转渐变方向和压缩渐变扩散等。

StartPointEndPoint 属性是相对于绘制区域而言的。 (0,0) 表示正在绘制区域的左上角,(1,1) 表示正在绘制区域的右下角。 下图显示对角线线性渐变画笔的渐变轴:

Frame with a diagonal gradient axis.

在该图中,虚线表示渐变轴,突出显示渐变从起点到终点的内插路径。

创建水平线性渐变

如果要创建水平线性渐变,请创建 LinearGradientBrush 对象并将其 StartPoint 设置为 (0,0),将其 EndPoint 设置为 (1,0)。 然后,在 LinearGradientBrush.GradientStops 集合中添加两个或多个 GradientStop 对象,以便指定渐变的颜色及其位置。

下列 XAML 示例显示水平 LinearGradientBrush,其被设置为 FrameBackground

<Frame BorderColor="LightGray"
       HasShadow="True"
       CornerRadius="12"
       HeightRequest="120"
       WidthRequest="120">
    <Frame.Background>
        <!-- StartPoint defaults to (0,0) -->
        <LinearGradientBrush EndPoint="1,0">
            <GradientStop Color="Yellow"
                          Offset="0.1" />
            <GradientStop Color="Green"
                          Offset="1.0" />
        </LinearGradientBrush>
    </Frame.Background>
</Frame>  

在这个示例中,Frame 的背景使用 LinearGradientBrush,从黄色到绿色水平内插:

Screenshot of a Frame painted with a horizontal LinearGradientBrush.

创建垂直线性渐变

如果要创建垂直线性渐变,请创建 LinearGradientBrush 对象并将其 StartPoint 设置为 (0,0),将其 EndPoint 设置为 (0,1)。 然后,在 LinearGradientBrush.GradientStops 集合中添加两个或多个 GradientStop 对象,以便指定渐变的颜色及其位置。

下列 XAML 示例显示垂直 LinearGradientBrush 设置为 FrameBackground

<Frame BorderColor="LightGray"
       HasShadow="True"
       CornerRadius="12"
       HeightRequest="120"
       WidthRequest="120">
    <Frame.Background>
        <!-- StartPoint defaults to (0,0) -->    
        <LinearGradientBrush EndPoint="0,1">
            <GradientStop Color="Yellow"
                          Offset="0.1" />
            <GradientStop Color="Green"
                          Offset="1.0" />
        </LinearGradientBrush>
    </Frame.Background>
</Frame>

在这个示例中,Frame 的背景是用 LinearGradientBrush 从黄色垂直内插到绿色:

Screenshot of a Frame painted with a vertical LinearGradientBrush.

创建对角线线性渐变

如果要创建对角线线性渐变,请创建 LinearGradientBrush 对象,并将其 StartPoint 设置为(0,0),将其 EndPoint 设置为 (1.1)。 然后,在 LinearGradientBrush.GradientStops 集合中添加两个或多个 GradientStop 对象,以便指定渐变的颜色及其位置。

下列 XAML 示例显示对角线 LinearGradientBrush,该对角线被设置为 FrameBackground

<Frame BorderColor="LightGray"
       HasShadow="True"
       CornerRadius="12"
       HeightRequest="120"
       WidthRequest="120">
    <Frame.Background>
        <!-- StartPoint defaults to (0,0)      
             Endpoint defaults to (1,1) -->
        <LinearGradientBrush>
            <GradientStop Color="Yellow"
                          Offset="0.1" />
            <GradientStop Color="Green"
                          Offset="1.0" />
        </LinearGradientBrush>
    </Frame.Background>
</Frame>

在此示例中,Frame 的背景使用从黄色倾斜内插到绿色的 LinearGradientBrush

Screenshot of a Frame painted with a diagonal LinearGradientBrush.