首页 > 代码库 > Wpf 画刷

Wpf 画刷

画刷类

1、SolidColorBrush 使用单一的连续颜色绘制区域。

2、LinearGradientBrush 使用简便填充绘制区域,渐变的阴影填充从一种颜色变化到另一种颜色。

3、RadialGradientBrush 使用径向简便填充绘制区域,除了是在圆形模式中从中心点向外部辐射渐变之外,这种画刷和线性检变化刷类似。

4、ImageBrush 使用可以被拉伸、缩放或平铺的图像绘制区域。

5、DrawingBrush 使用一个Drawing对象绘制区域。该对象可以包含已经定义的形状和位图。

6、VisualBrush 使用一个Visual对象绘制区域。因为所有WPF元素都继承自Visual类,所以可以使用该画刷将部分用户几面(如按钮的表面)复制到另外一个区域。当创建特殊效果时,如部分反射效果,该画刷特别有用。

7、BitmapCacheBrush 使用从一个Visual 对象缓存的内容绘制区域。这种画刷和VisualBrush类似,但是如果需要在多个地方重用图形内容或者频繁的重绘图形内容,这种画刷更高效。

SolidColorBrush 

在大多数控件中,设置Foreground属性绘制文本颜色,并设置Background属性绘制文本后面的空间。形状使用类似但不同的属性:Stroke属性用于绘制形状的边框并且Fill属性用于绘制形状的内部。

cmd.Background = new SolidColorBrush(Colors.Red);cmd.Background = SystemColors.ControlBrush;int Red =0; int green =255;int blue =0;cmd.Foreground = new SolidColorBrush(Color.FromRgb(Red,green,blue);

 

LinearGradientBrush 

通过LinearGradientBrush画刷可以创建从一种颜色变化到另一种颜色的混合填充。

<Rectangle Width="150" Height="100"><Rectangel.Fill>  <LinearGradientBrush>    <GradientStop Color="Blue" Offset="0"/>    <GradientStop Color="White" Offset="1"/>  </LinearGradientBrush></Rectangel.Fill></Rectangle >

 

RadialgradientBrush 

需要设定圆心坐标和X坐标和Y坐标的值就可以画一个圆形渐变,在wpf中同样需要这三个元素,

分别对应设Center,RadiusX,RadiusY,当然在wpf中还存在一个“梯度原点“:GradientOrigin。

<Rectangle Height="200" HorizontalAlignment="Left" Margin="128,45,0,0" Name="rectangle1" Stroke="Black" VerticalAlignment="Top" Width="200">             <Rectangle.Fill>                <RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5" RadiusX="0.5" RadiusY="0.5">                     <RadialGradientBrush.GradientStops>                         <GradientStop Color="Yellow" Offset="0"/>                         <GradientStop Color="Red" Offset="0.25"/>                        <GradientStop Color="Blue" Offset="0.75"/>                         <GradientStop Color="LimeGreen" Offset="1"/>                    </RadialGradientBrush.GradientStops>                </RadialGradientBrush>16             </Rectangle.Fill> </Rectangle>

 

ImageBrush(图像画刷)

      这种画刷也是很有意思的,有时我们在炫时需要用图片做装饰,那么此时ImageBrush就可以祝你一臂之力。

 <Grid.Background>           <ImageBrush x:Name="landBrush" ImageSource="C:\Users\Administrator\Desktop\weibo\64512.gif"/> </Grid.Background>

 

VisualBrush(控件画刷)
<Window x:Class="WpfApplication1.MainWindow"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        Title="MainWindow" Height="350" Width="525">    <Window.Resources>        <VisualBrush x:Key="test" TileMode="Tile" Opacity="0.8">            <VisualBrush.Visual>                <StackPanel>                    <TextBlock Foreground="Gold">                        唧唧复唧唧                    </TextBlock>                    <TextBlock Foreground="LightBlue">                       木兰开飞机                    </TextBlock>                    <TextBlock Foreground="LightGray">                       开的什么机                    </TextBlock>                    <TextBlock Foreground="Pink">                       波音747                    </TextBlock>                </StackPanel>            </VisualBrush.Visual>        </VisualBrush>    </Window.Resources>    <Grid>        <Button Content="我是超大按钮" Height="213" HorizontalAlignment="Left" Margin="32,34,0,0" Name="button1"                 VerticalAlignment="Top" Width="414" Background="{StaticResource ResourceKey=test}"/>    </Grid></Window>

 

 

DrawingBrush(自定义画刷)

<Window x:Class="WpfApplication4.MainWindow"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        Title="MainWindow" Height="350" Width="525">    <Window.Resources>        <DrawingBrush x:Key="test">            <DrawingBrush.Drawing>                <DrawingGroup>                    <DrawingGroup.Children>                        <GeometryDrawing>                            <!-- 绘制矩形 -->                            <GeometryDrawing.Geometry>                                <RectangleGeometry RadiusX="0.2" RadiusY="0.5"                                                       Rect="0.02,0.02,0.96,0.96" />                            </GeometryDrawing.Geometry>                            <!-- 矩形填充色 -->                            <GeometryDrawing.Brush>                                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">                                    <GradientStop Color="Green" Offset="0" />                                    <GradientStop Color="Red" Offset="1" />                                </LinearGradientBrush>                            </GeometryDrawing.Brush>                            <!-- 矩形边框 -->                            <GeometryDrawing.Pen>                                <Pen Thickness="0.02">                                    <Pen.Brush>                                        <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">                                            <GradientStop Color="AliceBlue" Offset="0" />                                            <GradientStop Color="Black" Offset="1" />                                        </LinearGradientBrush>                                    </Pen.Brush>                                </Pen>                            </GeometryDrawing.Pen>                        </GeometryDrawing>                    </DrawingGroup.Children>                </DrawingGroup>            </DrawingBrush.Drawing>        </DrawingBrush>    </Window.Resources>    <Grid>        <Button Background="{StaticResource ResourceKey=test}" FontSize="40" Content="Button" Height="113" HorizontalAlignment="Left" Margin="89,80,0,0" Name="button1" VerticalAlignment="Top" Width="292" />    </Grid></Window>

 

 

 

Wpf 画刷