zoukankan      html  css  js  c++  java
  • SilverLight中的画刷小结

    Stroke:基本图形的边线;Fill:填充;Foreground:文字的颜色。可以直接设置成一个颜色值,如:<RectangleWidth="80"Height="60"Stroke="Blue"Fill="Red" />, 这样就有了一个边线是蓝色的红色矩形。但实际上这些可以设置颜色的属性都是画刷类型的,只是当直接写成颜色值的时候,系统自动转换成了纯色画刷。就像下面这样:<Rectangle Width="80" Height="60">
        <
    Rectangle.Stroke>
            <
    SolidColorBrush Color="Blue" /> </Rectangle.Stroke>
        <
    Rectangle.Fill>
            <
    SolidColorBrush Color="Red" />
        </
    Rectangle.Fill>       
    </
    Rectangle>

    SliverLight中的画刷有以下几种:
    SolidColorBrush: 纯色画刷。主要属性有:Color。
    LinearGradientBrush: 线性渐变画刷。主要属性有:StartPoint, EndPoint, GradientStop, SpreadMethod。
    RedialGradientBrush: 径向渐变画刷。主要属性有:Center, RadiusX, RadiusY, GradientOrigin, GradientStop。
    ImageBrush: 图像画刷。主要属性有:ImageSource, Stretch, AlignmentX, AlignmentY。
    VideoBrush: 视频画刷。主要属性有:SourceName, Stretch, AlignmentX, AlignmentY。
    1. SolidColorBrush.
    纯色画刷就是设置一个颜色值给Color属性。这个颜色值可以设置成:
    颜色字符串:如 Red,Blue等等。总共有256个命名的颜色串。
    RGB值:如 #0099FF, #F1F1F1等等。这个跟网页中指定的颜色一样。
    ARGB值:如#880099FF, 比RGB多了Alpha通道信息,用于指定透明度。
    2. LinearGradientBrush.
    先看一个简单的代码:
     <Rectangle Width="80" Height="60">
            <
    Rectangle.Fill>
                <
    LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
                    <
    GradientStop Offset="0" Color="Blue" />
                    <
    GradientStop Offset="1" Color="Red" />
                </
    LinearGradientBrush>
            </
    Rectangle.Fill>       
        </
    Rectangle>
    对以上代码的解释:属性StartPoint和EndPoint描述了一条线,左上角是0,0, 右下角是1,1,这条线是相对于对象的大小的相对位置,也就是说,假定对象的宽度和高度都是1. 这样,不管对象是什么大小,都可以用同样的值来描述。如果不设置StartPoint和EndPoint,那么就是从左上角到右下角的一条线。这条线就是渐变的基准线。然后每一个GradientStop中的Offset就是基于这条线上的相对位置,同样,这条线也假定长度为1. Offset就是0到1中间的一个值,也就指定了基准线上位置。再指定一个Color, 就代表从上一个点到这个点的线性渐变颜色。那么,上面的设置就使得rectangle填充成从右上角的蓝色到右下角的红色渐变。
    横向渐变:就是把StartPoint和EndPoint设成: ( 0, 0 ) –> ( 1, 0 ), 也就是Y值不变,X值变。
    纵向渐变:就是把StartPoint和EndPoint设成:( 0, 0 ) –> ( 0, 1 ), 也就是X值不变,Y值变。
    多个颜色值渐变:就是多放几个GradientStop。
    还有一个属性SpreadMethod(覆盖方法)。这是当渐变没有填充完整个对象时,那么剩下的部分用什么
    颜色来填充。可以设的值有:
    Pad: 这是默认值。就是用最后一个颜色值来填充。
    Repeat: 重复。就是再从第一个颜色往后开始画渐变。
    Reflect: 反射。就是从最后一个往前开始画渐变。
    3. RedialGradientBrush.
    线性渐变定义了一条基准线,而径向渐变使用Center(圆心), RadiusX(x轴半径), RadiusY(y轴半径),这三个属性定义
    了一个椭圆,GradientStop中的颜色就是从圆心到四周以椭圆渐变填充。如下面例子:
     <Ellipse Width="80" Height="60">
            <
    Ellipse.Fill>
                <
    RadialGradientBrush Center="0.5,0.5" RadiusX="0.5" RadiusY="0.25">
                    <
    GradientStop Offset="0" Color="Blue" />
                    <
    GradientStop Offset="1" Color="Red" />
                </
    RadialGradientBrush>
            </
    Ellipse.Fill>
        </
    Ellipse>
    属性GradientOrigin="1,0",用来设置渐变色从那里开始的。RadialGradientBrush也有 SpreadMethod 属性,用法跟LinearGradientBrush一样。

  • 相关阅读:
    自从学会了搭建开源网站,妈妈再也不担心我找不到web自动化学习环境啦!
    领导要我6点下班前创建1000个有效的手机号,现在5点半了!教你用random模块10分钟搞定!
    python:字符串 扩展分片:第三个限制值
    python字符串:索引和分片
    测试基础:测试用例设计策略
    测试基础:软件测试思维方式
    面试整理:python列表面试习题
    面试整理:linux
    测试的一些思考
    python ConfigParse模块中的方法
  • 原文地址:https://www.cnblogs.com/junzi2099/p/3872035.html
Copyright © 2011-2022 走看看