上两篇对WPF有了一个简单的入门,开始来学习基本的知识,这篇我和大家一起学习WPF基本画刷:Brush
WPF一共提供了6种画刷:
1. SolidColorBrush
纯色画刷,只是单一的一种颜色, 值是Color,可以调用Colors进行枚举或者使用Color.FromArgb()或者Color.FromRgb()。 A,R,G,B是颜色的4个属性。A代表透明度,RGB 代表三原色:红,绿,蓝。 Brushes有141个静态只读的属性,名称和Colors一样,但是它返回的都是SolidColorBrush类型对象。
<Button>
<Button.Background>
<SolidColorBrush>Yellow<SolidColorBrush>
</Button.Background>
</Button>
一个背景为黄色的按钮
2. LinearGradientBrush
渐变的画刷,可以指定StartPoint和EndPoint,指定起点和终点并指定这两个点的颜色。同时也可以包含很多GradientStop。 GradientStop可以指定之间某一个位置的颜色,通过Offset指定位置,offset的值为0~1之间的数字。看一个例子
<Button>
<Button.Background>
<LinearGradientBrush StartPoint=”0,0” EndPoint=”1,0”> //垂直渐变
<GradientStop Color=”Red” Offset=”0”/>
<GradientStop Color=”Orange” Offset=”.17”/>
<GradientStop Color=”Yellow” Offset=”.34”/>
<GradientStop Color=”Green” Offset=”.5”/>
<GradientStop Color=”Blue” Offset=”.67”/>
<GradientStop Color=”Indigo” Offset=”.84”/>
<GradientStop Color=”Violet” Offset=”1”/>
</LinearGradientBrush>
</Button.Background>
</Button>
一个垂直渐变的按钮,发现颜色有特别的么? 是不是有点像彩虹呢?
3. RadialGradientBrush
这个是生成一个放射状的画刷, 它和LinearGradientBrush不同的地方就是它不用指定StartPoint和EndPoint. 当然它还有3个比较重要的属性. Center指定中心点的位置,如果指定中心,则设置Center=”0.5,0.5”, RadiusX,RadiusY指定椭圆的垂直和水平的半径。 GradientOrigin指定渐变的原点,和Center一样。但是Center是中心点,Gradient则是执行变化开始的点。
<Button>
<Button.Background>
<RadialGradientBrush>//垂直渐变
<GradientStop Color=”Red” Offset=”0”/>
<GradientStop Color=”Orange” Offset=”.17”/>
<GradientStop Color=”Yellow” Offset=”.34”/>
<GradientStop Color=”Green” Offset=”.5”/>
<GradientStop Color=”Blue” Offset=”.67”/>
<GradientStop Color=”Indigo” Offset=”.84”/>
<GradientStop Color=”Violet” Offset=”1”/>
</RadialGradientBrush>
</Button.Background>
</Button>
//剩下的3个在这本书里面没有介绍到,我从C#高级编程找了资料,使用起来很简单
4. DrawingBrush
这个画刷可以绘制自己的图形,用笔刷绘制的图形在GeometryDrawing元素中定义。GeometryDrawing的属性Geometry的GeometryGroup包含了用来绘制的Geometry元素。在详细讲解Path的章节将详细介绍到Geometry。 例如:EllipseGeometry, LineGeometry, RectangleGeometry, CombineGeometry, PathGeometry, StreamGeometry.
Xaml代码结构如下:
<Button>
<Button.Background>
<DrawingBrush>
<DrawingBrush.Drawing>
<GeometryDrawing Brush=”LightBlue”>
<GeometryDrawing.Geometry>
<GeometryGroup>
<EllipseGeometry RadiusX=”30” RadiusY=”30” Center=”20,20”/>
<EllipseGeometry RadiusX=”4” RadiusY=”4” Center=”10,10”/>
</GeometryGroup>
<GeometryDrawing.Pen>
<Pen>
<Pen.Brush>Red</Pen.Brush>
</Pen>
</GeometryDrawing.Pen>
</GeometryDrawing.Geometry>
</GeometryDrawing>
</DrawingBrush.Drawing>
</DrawingBrush>
</Button.Background>
</Button>
5. ImageBrush
这个就是用一个图片作为画刷
<ImageBrush ImageSource=”路径”/>
6. VisualBrush
这个画刷就是可以在画刷中包含其他的WPF元素,比如椭圆,按钮等。
<VisualBrush>
<VisualBrush.Visual>
<StackPanel Background=”White”>
<Ellipse Width=”65” Height=”20” Fill=”Aqua” Margin=”5”></Ellipse>
<Button Content=”yes”></Button>
<Rectangle Width=”25” Height=”25” Fill=”LightCoral” Margin=”2”></Rectangle>
</StackPanel>
</VisualBrush.Visual>
</VisualBrush>
好了本章的概念学习结束。