WPF 读书笔记之三 基本画刷 (Appliations=Code+Markup)

上两篇对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>

 

好了本章的概念学习结束。

posted @ 2010-08-09 16:25  Nick Song  阅读(905)  评论(0编辑  收藏  举报