WPF学习笔记4

落花浮王杯 提交于 2020-02-06 03:41:00

4.画笔

如何使用 WpF提供的画笔绘制背景和前景。它显示了在 Button
元素的一条 Path和 Backgromd属 性上使用各种画笔的效果。

soldColorBrush
soldColorBrush,顾名思义,这支画笔使用纯色。全部区域用 同一种颜色绘制。把 Backgromd属性设置为定义纯色的字符串,就可以定义纯色。使用BrushValueSerializer 把该字符串转换为一个 solidColorBrush元 素。

        <Button Height="30" Background="PapayaWhip">
            Solid Color
        </Button>

当然,设置 Backgound子元素,把 solidColorBrush元 素添加为它的内容,也可以得到同样效
果。 应用程序中的第一个按钮把 PapayaWhip 用作纯背景色 :

        <Button Content="Solid Color" Margin="40">
            <Button.Background>
                <SolidColorBrush Color="PapayaWhip"/>
            </Button.Background>
        </Button>

LinearGradientBrush
      对于平滑的颜色变化,可 以使用 LinearGradientBrush,如第二个按钮所示 。 这个画笔定义 了StartPoint  和EndPoint 属性。使用这些属性可以为线性渐变指定二维坐标。 默认的渐变方向是从(0,0)到(1,1)的对角线。 定义其他值可以给渐变指定不同的方 向。 例如,StartPoint 指定为(0,0)  EndPoint 指定为(0,1),就得到了一个垂直渐变。 StartPoint 不变,EndPoint 值指定为(1,0) ,就得到了一个水平渐变。
      通过该画笔的内容,可 以用 GradienStop元 素定义指定偏移位置的颜色值。 在各个偏移位置之间,颜色是平滑过渡的。
 

        <Button Content="Linear Gradient Brush" Margin="10">
            <Button.Background>
                <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                    <GradientStop Offset="0" Color="LightGreen"/>
                    <GradientStop Offset="0.4" Color="Green"/>
                    <GradientStop Offset="1" Color="DarkGreen"/>
                </LinearGradientBrush>
            </Button.Background>
        </Button>

效果图:

 

RadialGradientBrush

       使用RadialGradientBrush 可 以以放射方式产生平滑的颜色渐变。使用了RadialGradientBrush 。 该画笔定义了从GradientOrigin点开始的颜色。



 

        <Canvas Width="200" Height="150">
            <Path Canvas.Top="0" Canvas.Left="20" Stroke="Black">
                <Path.Fill>
                    <RadialGradientBrush GradientOrigin="0.2,0.2">
                       <GradientStop Offset="0" Color="LightBlue"/>
                        <GradientStop Offset="0.6" Color="Blue"/>
                        <GradientStop Offset="1.0" Color="DarkBlue"/>
                    </RadialGradientBrush>
                </Path.Fill>
                <Path.Data>
                    <CombinedGeometry GeometryCombineMode="Union">
                        <CombinedGeometry.Geometry1>
                            <EllipseGeometry Center="80,60" RadiusX="80"
                                              RadiusY="40" />
                        </CombinedGeometry.Geometry1>
                        <CombinedGeometry.Geometry2>
                            <RectangleGeometry Rect="30,60 105 50"/>
                        </CombinedGeometry.Geometry2>
                    </CombinedGeometry>
                </Path.Data>
            </Path>
        </Canvas>

效果图:

 

DrawingBrush

         DrawingBrush可以定义用画笔绘制的图形,用画笔回执的图形在GeometryDrawing元素中定义Gemetry属性中的GeometryGroup元素包含本章前面讨论的Geometry元素。

        <Button Content="Drawing Brush" Margin="10" Padding="10">
            <Button.Background>
                <DrawingBrush>
                    <DrawingBrush.Drawing>
                        <GeometryDrawing Brush="Red">
                            <GeometryDrawing.Pen>
                                <Pen>
                                    <Pen.Brush>
                                        <SolidColorBrush>Blue</SolidColorBrush>
                                    </Pen.Brush>
                                </Pen>
                            </GeometryDrawing.Pen>
                            <GeometryDrawing.Geometry>
                                <PathGeometry>
                                    <PathGeometry.Figures>
                                        <PathFigure StartPoint="70,40">
                                            <PathFigure.Segments>
                                                <BezierSegment Point1="90,37" Point2="130,46"
                                                               Point3="150,63" />
                                                <LineSegment Point="120,110" />
                                                <BezierSegment Point1="100,95"
                                                               Point2="70,90" Point3="45,91"/>
                                                <LineSegment Point="70,40"/>
                                            </PathFigure.Segments>
                                        </PathFigure>
                                    </PathGeometry.Figures>
                                </PathGeometry>
                            </GeometryDrawing.Geometry>
                        </GeometryDrawing>
                    </DrawingBrush.Drawing>
                </DrawingBrush>
            </Button.Background>
        </Button>

 ImageBrush

      要把图像加载到画笔中,可 以使用 ImgeBmsh元 素。 通过这个元素,显示 ImageSource属 性定义的图像。 图像可以从文件系统中访问,或者在程序集的资源中访问。 在本例中,图像添加为程序
集的一个资源,并通过程序集和资源名来引用 :
 

        <Button Content="Image Brush" Width="100" Height="80" Margin="5"
                Foreground="White">
            <Button.Background>
                <ImageBrush ImageSource="C:\Users\Administrator\Pictures\ooopic_1520921385.ico"/>
            </Button.Background>
        </Button>

效果图:

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!