WPF中Brush類型

畫刷Brush使用

畫刷類

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

SolidColorBrush

SolidColorBrush是最經常使用到的畫刷類,它的構造最簡單,一種純色畫刷。
一般可經過Brushes來獲取系統預先定義好的顏色畫刷,也能夠本身建立。例如:c#

Brush red = Brushes.Red;//紅色畫刷
Brush green = Brushes.Green;//綠色畫刷
Brush blue = Brushes.Blue;//藍色畫刷
SolidColorBrush red = new SolidColorBrush(Colors.Red);//紅色畫刷

在xaml中使用純色畫刷也很方便:app

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

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

LinearGradientBrush

LinearGradientBrush是線性漸變畫刷。spa

<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用於設置漸變顏色code

RadialGradientBrush

RadialGradientBrush是徑向漸變blog

<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

能夠將通常的圖形設置爲背景ip

<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能夠使用繪製it

<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>
相關文章
相關標籤/搜索