zoukankan      html  css  js  c++  java
  • WPF中Brush类型

    画刷Brush使用

    画刷类

    • SolidColorBrush
    • LinearGradientBrush
    • RadialGradientBrush
    • ImageBrush
    • VisualBrush
    • DrawingBrush

    SolidColorBrush

    SolidColorBrush是最常用到的画刷类,它的构造最简单,一种纯色画刷。
    通常可通过Brushes来获取系统预先定义好的颜色画刷,也可以自己创建。例如:

    Brush red = Brushes.Red;//红色画刷
    Brush green = Brushes.Green;//绿色画刷
    Brush blue = Brushes.Blue;//蓝色画刷
    SolidColorBrush red = new SolidColorBrush(Colors.Red);//红色画刷
    

    在xaml中使用纯色画刷也很方便:

    <Grid Background="Blue">
    </Grid>
    
    <Grid Background="#FF952C7D">
    <Grid/>
    

    LinearGradientBrush

    LinearGradientBrush是线性渐变画刷。

    <Grid.Background>
        <LinearGradientBrush  MappingMode="RelativeToBoundingBox"  ColorInterpolationMode="ScRgbLinearInterpolation"  StartPoint="0,0" EndPoint="1,1">
            <GradientStopCollection>
                <GradientStop Color="Red" Offset="0.2"/>
                <GradientStop Color="Blue" Offset="0.5"/>
                <GradientStop Color="Green" Offset="0.8"/>
            </GradientStopCollection>
        </LinearGradientBrush>
    </Grid.Background>
    

    其中GradientStop用于设置渐变颜色

    RadialGradientBrush

    RadialGradientBrush是径向渐变

    <Grid.Background>
        <RadialGradientBrush RadiusX="1" RadiusY="1" Center="0.1,0.2" GradientOrigin="0.2,0.2">
            <GradientStopCollection>
                <GradientStop Color="Red" Offset="0.2"/>
                <GradientStop Color="Blue" Offset="0.6"/>
                <GradientStop Color="Green" Offset="0.8"/>
            </GradientStopCollection>
        </RadialGradientBrush>
    </Grid.Background>
    

    ImageBrush

    ImageBrush与剩余两种都继承于TileBrush类。ImageBrush是图片画刷,可以设置图片作为画刷来使用。

    <Grid.Background>
        <ImageBrush Stretch="Fill" Viewport="0,0,0.1,0.1" ViewportUnits="RelativeToBoundingBox" TileMode="Tile" ImageSource="/Images/ico_head.png"/>
    </Grid.Background>
    

    其中Stretch属性与Image中的属性效果一样,表示该图片在一定区域内的表现形式。
    TileMode表示填充的方式。
    TileMode="Tile"
    tile
    TileMode="FlipX"
    FlipX
    TileMode="FlipXY"
    FlipXY
    TileModel="FlipY"
    FlipY
    可以发现设置不同的TileMode的值,所表现出来的效果是有很大不同的。
    Viewport属性用于设置显示区域的大小。它与ViewportUnits一块配合使用。
    ViewportUnits默认是相对值。

    VisualBrush

    可以将一般的图形设置为背景

    <Grid.Background>
        <VisualBrush TileMode="Tile" Viewbox="0,0,2,2" Viewport="0,0,0.1,0.1">
            <VisualBrush.Visual>
                <TextBlock Text="  水印文本  "/>
            </VisualBrush.Visual>
        </VisualBrush>
    </Grid.Background>
    

    DrawingBrush

    DrawingBrush可以使用绘制

    <Grid.Background>
        <DrawingBrush Viewport="0,0,200,220" ViewportUnits="Absolute" TileMode="Tile">
            <DrawingBrush.Drawing>
                <DrawingGroup>
                    <GeometryDrawing Brush="White">
                        <GeometryDrawing.Geometry>
                            <RectangleGeometry Rect="0,0,200,220"/>
                        </GeometryDrawing.Geometry>
                    </GeometryDrawing>
                    <GeometryDrawing Pen="{StaticResource SolidLine}" Geometry="M0,0 L200,0 200,200 0,200z"/>
                    <GeometryDrawing Pen="{StaticResource DottedLine}" Geometry="M100,0 L100,200"/>
                    <GeometryDrawing Pen="{StaticResource DottedLine}" Geometry="M0,100 L200,100"/>
                    <GeometryDrawing Geometry="M0,210 L200,210">
                        <GeometryDrawing.Pen>
                            <Pen Brush="Transparent" Thickness="10"/>
                        </GeometryDrawing.Pen>
                    </GeometryDrawing>
                </DrawingGroup>
            </DrawingBrush.Drawing>
        </DrawingBrush>
    </Grid.Background>
    
  • 相关阅读:
    有一天,我们能这样相爱吗?
    端午节来源六说
    一个ini类代替缓存使用
    创意生活可爱香皂
    漂亮的韩国发饰
    Oracle中PL/SQL单行函数和组函数详解
    真正爱你的女人是这样的
    执子之手,与子偕老。你同意么?
    男人如茶
    Oracle SQL 內置函數大全
  • 原文地址:https://www.cnblogs.com/zzr-stdio/p/11497123.html
Copyright © 2011-2022 走看看