`
yiyeqinghuasoon
  • 浏览: 644282 次
文章分类
社区版块
存档分类
最新评论

第26课 基本图形

 
阅读更多

概述

本文将简单介绍Silverlight中的基本图形,主要有Line、Ellipse、Rectangle、Path、Polygon、Polyline六种,它们之间的继承关系如下所示:

TerryLee_Silverlight2_0127

在Silverlight中,所有的图形几乎都具有如下几个重要的属性:

Stroke:对边框线填充

StrokeThickness:边框线的宽度

Fill:对图形进行填充

Line

Line顾名思义,在两点之间画出一条直线,需要指定起始点(X1、Y1)和终结点(X2、Y2)的坐标。如下面的例子:

Canvas Background="#CDFCAE">
    Line Canvas.Top="20" Canvas.Left="20"
          X1="20" Y1="20" X2="400" Y2="20"
          Stroke="#FF9900" StrokeThickness="4">
    Line>
    
    Line Canvas.Top="40" Canvas.Left="20"
          X1="20" Y1="40" X2="200" Y2="180"
          Stroke="#0099FF" StrokeThickness="5">
    Line>
    
    Line Canvas.Top="20" Canvas.Left="240"
          X1="220" Y1="20" X2="220" Y2="200"
          StrokeThickness="6">
        Line.Stroke>
            LinearGradientBrush StartPoint="0,0">
                GradientStop Color="#FFFFFF" Offset="0.0" />
                GradientStop Color="#307801" Offset="1.0" />
            LinearGradientBrush>
        Line.Stroke>
    Line>
Canvas>

运行后如下所示,分别画出三条直线:

TerryLee_Silverlight2_0120

Ellipse

Ellipse即椭圆形,如果设置长和高相等,画出来将是圆形,主要的属性还是前面说的那三个。如下面的示例:

Canvas Background="#CDFCAE">
    Ellipse Canvas.Top="20" Canvas.Left="40"
             Width="160" Height="80" Fill="#FF9900"
             Stroke="Black" StrokeThickness="3">
    Ellipse>
    
    Ellipse Canvas.Top="20" Canvas.Left="260"
             Width="180" Height="100">
        Ellipse.Fill>
            RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5"
                RadiusX="0.5" RadiusY="0.5">
                GradientStop Color="#0099FF" Offset="0" />
                GradientStop Color="#FF0000" Offset="0.25" />
                GradientStop Color="#FCF903" Offset="0.75" />
                GradientStop Color="#3E9B01" Offset="1" />
            RadialGradientBrush>
        Ellipse.Fill>
    Ellipse>
    
    Ellipse Canvas.Top="120" Canvas.Left="160"
             Width="100" Height="100" Fill="#FF9900"
             Stroke="#000000" StrokeThickness="2">
    Ellipse>
Canvas>

运行后如下所示,显示三个椭圆形:

TerryLee_Silverlight2_0122

Rectangle

Rectangle看名称就知道是矩形,设置长度和高度相等则为正方形,其主要的属性还是开始我们提到的那三个,同时还可以通过RadiusX和RadiusY来设置它的圆角效果,看下面的例子:

Canvas Background="#CDFCAE">
    Rectangle Canvas.Top="20" Canvas.Left="40"
         Width="160" Height="80" Fill="#FF9900"
         Stroke="Black" StrokeThickness="3">
    Rectangle>

    Rectangle Canvas.Top="20" Canvas.Left="260"
         Width="180" Height="100">
        Rectangle.Fill>
            RadialGradientBrush GradientOrigin="0.5,0.5" Center="0.5,0.5"
            RadiusX="0.5" RadiusY="0.5">
                GradientStop Color="#0099FF" Offset="0" />
                GradientStop Color="#FF0000" Offset="0.25" />
                GradientStop Color="#FCF903" Offset="0.75" />
                GradientStop Color="#3E9B01" Offset="1" />
            RadialGradientBrush>
        Rectangle.Fill>
    Rectangle>

    Rectangle Canvas.Top="120" Canvas.Left="120"
         Width="100" Height="100"
         Stroke="#000000" StrokeThickness="2" RadiusX="15" RadiusY="15">
        Rectangle.Fill>
            LinearGradientBrush StartPoint="0,1">
                GradientStop Color="#FFFFFF" Offset="0.0" />
                GradientStop Color="#FF9900" Offset="1.0" />
            LinearGradientBrush>
        Rectangle.Fill>
    Rectangle>
Canvas>

运行后如下所示,其中有两个加上了渐变效果:

TerryLee_Silverlight2_0123

Path

相比较前面三个简单的图形来说,Path相对来说比较复杂,它用来画出一系列的相连的圆弧或者线条,可以称之为“轨迹”,使用它可以画出任意复杂的形状,主要通过Data属性来展现。一个简单的Path声明示例如下:

Canvas Background="#CDFCAE">
    Path Stroke="Orange" StrokeThickness="3"
          Data="M 10,40 L 300,40 V 100 H 240 S 300,240 400,175">
    Path>
Canvas>

运行后如下所示:

TerryLee_Silverlight2_0124

这里对Data做一下简单的解释,Silverlight提供了一种称之为“迷你语言”的属性句法,来描述如何画出轨迹形状,包括M(移动命令,起始点)、L(直线,结束点)、H(水平线)、V(垂直线)、C(三次贝塞尔曲线)、Q(两次贝塞尔曲线)、A(椭圆弧曲线)、Z(结束命令)等。更为详细的使用大家可以参考SDK。

Polygon

Polygon用来画多边形,需要用Points属性来指定几个特定的点,至于画几边形,要看你定义几个点了(要看救生员啥时救他—宋丹丹语录),它会自动闭合。

Canvas Background="#CDFCAE">
    Polygon Canvas.Left="50" Canvas.Top="50"
             Points="50,20 300,20 300,160 200,160"
             Stroke="Green" StrokeThickness="3" Fill="Orange">
    Polygon>
Canvas>

每一个点之间用空格分开,运行后如下所示:

TerryLee_Silverlight2_0125

Polyline

Polyline用来画多边线,与上面的Polygon不同的地方是它不一定要是闭合的,同样用Points属性来指定几个特定的点,我们定义一个跟上面的示例一样的Polyline:

Canvas Background="#CDFCAE">
    Polyline Canvas.Left="50" Canvas.Top="50"
             Points="50,20 300,20 300,160 200,160"
             Stroke="Green" StrokeThickness="3" Fill="Orange">
    Polyline>
Canvas>

运行后可以看到,有一条边未闭合:

TerryLee_Silverlight2_0126

结束语

本文内容比较简单,介绍了Silverlight中的一些基本的图形。

分享到:
评论

相关推荐

    手机Python图形界面教程

    『第十六课』教你如何利用色彩产生立体效果 『第十七课』教你如何用图形界面做菜单 『第十八课』游戏加载界面的设计(一) 『第十九课』游戏加载界面之闪屏的设计(二) 『第二十课』游戏玩家数据记录之数据库操作 『第...

    计算机图形学10章课件26个上机作业代码

    10章全课件 有图形包的TC2编程...第二章 图形系统.ppt 第三章 二维图元的基本光栅图形学算法-1~3.ppt 第四章 参数曲线.ppt 第五章 几何变换.ppt 第六章 三维观察变换.ppt 第七章 参数曲面.ppt 第八章 实体的表示.ppt

    学通Java的24堂课

    1.8 成功可以复制——“盖茨第二” 23 第2堂课 使用ide集成开发工具 25 视频讲解:128分钟 2.1 eclipse简介 26 2.2 eclipse下载与安装 26 2.2.1 eclipse分类 26 2.2.2 下载eclipse 26 2.2.3 安装中文语言包 ...

    html语言剖析

    · 第六课 清单标记 · 第七课 表格标记 · 第八课 表单标记 · 第九课 图形标记 · 第十课 链接标记 · 第十一课 排版标记 · 第十二课 多媒体标记 · 第十三课 其他标记 · 第十四课 特殊字符 · 第十五...

    html的入门文档,绝对实用的

    · 第六课 清单标记 · 第七课 表格标记 · 第八课 表单标记 · 第九课 图形标记 · 第十课 链接标记 · 第十一课 排版标记 · 第十二课 多媒体标记 · 第十三课 其他标记 · 第十四课 特殊字符 · 第十五...

    【理论学习班】传感器电子制作DIY(54例)BMP PART1

     第26课 河流水位测量  5 气体检测  第27课 空气压力传感器  第28课 电子嗅探器  第29章 图形条压力传感器  第30章 粒化电阻易燃气体传感器  第31章 电子气压计 6 振动传感器  第32课 振动计时器 ...

    【理论学习班】传感器电子制作DIY(54例)BMP PART2

     第26课 河流水位测量  5 气体检测  第27课 空气压力传感器  第28课 电子嗅探器  第29章 图形条压力传感器  第30章 粒化电阻易燃气体传感器  第31章 电子气压计 6 振动传感器  第32课 振动计时器 ...

    CAD制图素材

    第二课 基本绘图操作与辅助工具 第三课 基本绘图操作 第四课 图形的编辑与修改 第五课 图层 第六课 标注 第七课 参数化设计 第八课 三视图 第九课 轴测图 第十课 三维设计 第十一课 网格建模及渲染

    word2000基础教程.

    第一课 制做一份通知 Word是什么 基本界面的介绍 输入和修改文字 简单的文档排版 改变显示比例 存盘和退出 打开文档 简单的表格功能 打印预览和打印第二课 Word的基本操作 一、基本内容 新建文档 打开...

    VC++可视化编程指南

    第二课 使用Visual C++ 5.0  2.1 Visual C++可视化集成开发环境  2.2 创建、组织文件、工程和工作区  2.3 WIN32开发  2.4 MFC编程  2.5 移植C Windows程序到MFC  2.6 Visual C++5.0新特性 第三课 窗口、...

    VC++ 编程指南_中文chm

    第二课 使用Visual C++ 5.0  2.1 Visual C++可视化集成开发环境  2.2 创建、组织文件、工程和工作区  2.3 WIN32开发  2.4 MFC编程  2.5 移植C Windows程序到MFC  2.6 Visual C++5.0新特性 第三课 窗口、...

    VC++编程指南(中文版).chm

    第二课 使用Visual C++ 5.0  2.1 Visual C++可视化集成开发环境  2.2 创建、组织文件、工程和工作区  2.3 WIN32开发  2.4 MFC编程  2.5 移植C Windows程序到MFC  2.6 Visual C++5.0新特性 第三课 窗口、...

    清华版labview教程

    第二章 程序结构 2.1 循环结构 2.1. 1 While 循环 2.1.2 移位寄存器 2.1.3 For循环 2.2 分支结构:Case 2.3 顺序结构和公式节点 2.3.1 顺序结构 2.3.2 公式节点 第三章 数据...

    《二进制与计算机》优质课教学设计.doc

    (二)过程与方法:通过屈伸手指的方法学会二进制与十进制的转化,通过二进制语 言传输活动体会到计算机对字符的表示方法,通过设计图形编码活动理解计算机对图像 的表示方法。 (三)情感态度价值观: 学会相互...

    IBM PC汇编语言程序设计

    第五、六章叙述循述循环、分支、子程序等基本程序结构以及程序设计的基本方法和技术;第七章为宏汇编技术;第八章说明以中断为主的输入/输出程序设计方法;第九章介绍BIOS和DOS系统功能调用的使用方法;第十~十二章...

    compilers:COMP36512 的回购

    第十六讲:寄存器分配 第十七讲:通过图形着色进行寄存器分配 第十八讲:教学安排 第十九讲:代码优化 考试附加说明 ##第一课:介绍 编译器采用一些源代码,并以另一种语言生成输出,同时保留源代码的含义。 ####...

    OPenGL编程书籍

    作为第二课的扩展,我将叫你如何使用颜色。你将理解两种着色模式,在左图中,三角形用的是光滑着色,四边形用的是平面着色。 注意三角形上的颜色是如何混合的。 颜色为OpenGlL 工程增加很多。通过理解平面着色(flat...

    Nehe的OpenGL教程电子书

    作为第二课的扩展,我将叫你如何使用颜色。你将理解两种着色模式,在左图中,三角形用的是光滑着色,四边形用的是平面着色。 注意三角形上的颜色是如何混合的。 颜色为OpenGlL 工程增加很多。通过理解平面着色(flat...

    百例课堂.DELPHI.7编程入门篇

    第2课 Delphi的基本控件使用 实例2 制作文本显示程序 实例3 计算字符串长度程序设计 实例4 设计“文件”下拉菜单 实例5 设计显示多行文本的窗体 实例6 设计一个复选框程序 实例7 设计一个进度条程序 第3课 Delphi对...

    计算机应用基础windows7+office2010计算机基础知识.pptx

    一般为3月倒数第一个周六和9月倒数第二个周六,考试持续5天。 全国(quán ɡuó)计算机等级考试(NCRE) 共八十六页 计算机应用基础windows7+office2010计算机基础知识全文共86页,当前为第7页。 课程性质: 计算机...

Global site tag (gtag.js) - Google Analytics