zoukankan      html  css  js  c++  java
  • MSDN 教学短片WPF 5(Linear/RadialGradientBrush)

    Linear/RadialGradientBrush
    先介绍下这两个笔刷的特点:

    LinearGradientBrush 使用线性渐变绘制区域。 线性渐变沿直线定义渐变。 该直线的终点由线性渐变的 StartPoint 和 EndPoint 属性定义。
    LinearGradientBrush 画笔沿此直线绘制其 GradientStops。

    默认的线性渐变是沿对角方向进行的。 默认情况下,线性渐变的 StartPoint 是被绘制区域的左上角 (0,0),其 EndPoint 是被绘制区域的右下角 (1,1)。
    所得渐变的颜色是沿着对角方向路径插入的。

    下面的插图显示了对角方向的渐变。 图中添加了一条线,用于突出显示渐变从起点到终点的插值路径。
    对角方向的线性渐变

    image

    下一幅插图显示的是同一线性渐变,但它具有突出显示的渐变停止点。

    具有突出显示的渐变停止点的对角线性渐变

    image

    我们来画一个椭圆:

    <Ellipse Margin="28,22,131,130" Name="ellipse1" Stroke="Black">
                <Ellipse.Fill>
                    <LinearGradientBrush StartPoint="1,1" EndPoint="0,0">
                        <GradientStop Color="Black" Offset="0" />
                        <GradientStop Color="White" Offset="1" />
                    </LinearGradientBrush>
                </Ellipse.Fill>
    </Ellipse>

    我们把开始的起点设置为右下角,终点为左上角。offset是偏移量。

    效果图:

    image

    我们可以在图上画一个椭圆,来模仿像按钮的形式。在加这段xaml

    <Ellipse Margin="38,33,0,0" Name="ellipse2" Stroke="Black" Height="87" HorizontalAlignment="Left" VerticalAlignment="Top" Width="98">
                <Ellipse.Fill>
                    <LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                        <GradientStop Color="Black" Offset="0" />
                        <GradientStop Color="White" Offset="1" />
                    </LinearGradientBrush>
                </Ellipse.Fill>
    </Ellipse>

    image

    有点像凹进去的按钮效果。

    下面我们来介绍下RadialGradientBrush

    RadialGradientBrush 在编程模型中与 LinearGradientBrush 类似。 但是,线性渐变有一个起点和一个终点用于定义渐变矢量,而径向渐变有一个圆以及一个焦点用于定义渐变行为。 该圆定义渐变的终点。 换言之,1.0 处的渐变停止点定义圆周处的颜色。 焦点定义渐变的中心。 0.0 处的渐变停止点定义焦点处的颜色。

    下面的图像演示使用径向渐变填充的矩形。 径向渐变从白色变化至灰色。 外部圆表示渐变圆,而红点表示焦点。 此渐变将它的 SpreadMethod 设置为 Pad

    image

    image

    从上面这张图可以看出它的渐变停止点、颜色、偏移量。

    我们在原来的基础上画一个RadialGradientBrush笔刷的Ellipse.

    <Ellipse Margin="56,48,0,0" Name="ellipse3" Stroke="Black" Height="59" VerticalAlignment="Top" HorizontalAlignment="Left" Width="61">
                <Ellipse.Fill>
                    <RadialGradientBrush>
                        <GradientStop Color="White" Offset="0" />
                        <GradientStop Color="Black" Offset="1" />
                    </RadialGradientBrush>
                </Ellipse.Fill>
      </Ellipse>

    image

    它在Button等控件上也是同样适用的。

    <Button HorizontalAlignment="Right" Margin="0,22,15,208" Name="button1" Width="99">
               <Button.Background>
                   <LinearGradientBrush StartPoint="0,0" EndPoint="0,1">
                       <GradientStop Color="White" Offset="0" />
                       <GradientStop Color="Black" Offset="1" />
                   </LinearGradientBrush>
               </Button.Background>
               Button
    </Button>

    image

  • 相关阅读:
    hadoop安全模式
    建造者模式:设计角度重温游戏中的角色
    工厂模式:工厂方法与抽象工厂的战争
    原型模式(克隆模式):浅谈浅克隆与深克隆
    单例模式:层层剖析寻找最高效安全的单例
    24种设计模式和7大设计原则
    浅谈图的存储结构与遍历
    彻底理清二叉排序树的插入、查找、删除
    浅谈顺序、折半查找
    Android定位(是否使用GPS进行定位)
  • 原文地址:https://www.cnblogs.com/dingli/p/1902875.html
Copyright © 2011-2022 走看看