Silverlight中进行图形标绘的方法太多了,这里的标绘和Arcgis中的标绘不同,这里大多是静态的标绘。标绘的方法主要有Path(路径标记法)、直接标绘(Line等)、几何标记(LineGeometry等)。

1.路径标记法

路径标记在silverlight中是非常重要的一种标绘方法,通过路径标记,我们可以标绘多种形状的曲线或者直线。下面直接直接上代码。

  <Path Stroke="Blue" Data="M 0,0 L 0,0 10,10 20,20 50,50"></Path>
<Path Stroke="Red" Data="M 50,50 H 60 80 150"></Path>
<Path Stroke="Green" Data="M 150,50 V 50 150"></Path> <Path Stroke="GreenYellow" Data="M 100,200 C 100,25 400,350 400,175 H 280" StrokeThickness="3"></Path>

Path

路径标绘一般通过<Path Data=""/>,在Data中是标绘的主要部分,M代表起始点,点的表示形式为(x,y),L表直线,H表示水平线,V表示垂直线,C表示三次方贝塞尔曲线。若图形需要封闭,用Z表示结束。Stroke表示轮廓线的颜色。StrokeThickness是指线段的宽度。

2.图表标绘

silverlight中提供了Line、PolyLine、Polygon、Eclipse、Rectangle等几种标绘类型。

Line,可以在画布中画一条直线,需要制定起点(X1,Y1),终点(X2,Y2),线的颜色和线的宽度等。

PolyLine,是多段线,需要指定它的Points,Points是点的集合。

Polygon,是多边形,同样需要指定Points。

Eclipse是椭圆。。。

Rectangle是矩形。在这里需要讲讲颜色的渐变。silverlight中包含两种渐变方式:LinearGradientBrush和RadialGradientBrush。

LinearGradientBrush是指线性渐变,它可以演化为多种渐变方式,比如水平渐变、垂直渐变、斜线渐变。

         <Rectangle Width="200" Height="50" Canvas.Left="100" Canvas.Top="250">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1">
<GradientStop Color="Yellow" Offset="0.0"></GradientStop>
<GradientStop Color="Red" Offset="0.25"></GradientStop>
<GradientStop Color="Blue" Offset="0.75"></GradientStop>
<GradientStop Color="LimeGreen" Offset="1.0"></GradientStop>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>

斜线渐变

斜线渐变也就是设置直线的起点(0,0),终点(1,1)。

  <Rectangle Width="200" Height="50" Canvas.Left="50" Canvas.Top="310">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0.5" EndPoint="1,0.5">
<GradientStop Color="Yellow" Offset="0.0"></GradientStop>
<GradientStop Color="Red" Offset="0.25"></GradientStop>
<GradientStop Color="Blue" Offset="0.75"></GradientStop>
<GradientStop Color="LimeGreen" Offset="1.0"></GradientStop>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>

水平渐变

水平渐变设置起点(0,0.5),终点(1,0.5),水平渐变需要保证Y轴的值无变化

 <Rectangle Width="200" Height="50" Canvas.Left="300" Canvas.Top="300">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
<GradientStop Color="Yellow" Offset="0.0"></GradientStop>
<GradientStop Color="Red" Offset="0.25"></GradientStop>
<GradientStop Color="Blue" Offset="0.75"></GradientStop>
<GradientStop Color="LimeGreen" Offset="1.0"></GradientStop>
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>

垂直渐变

垂直渐变需要保证的是x轴的值无变化,比如设置起点(0.5,0),终点(0.5,1)。

RadialGradientBrush是径向渐变的方式,它从一个中心点,以圆的方式渐变颜色。

 Rectangle Width="50" Height="50" Canvas.Left="150" Canvas.Top="200">
<Rectangle.Fill>
<RadialGradientBrush Center="0.5,0.5" GradientOrigin="0.5,0.5">
<GradientStop Color="Yellow" Offset="0"></GradientStop>
<GradientStop Color="Red" Offset="0.25"></GradientStop>
<GradientStop Color="Blue" Offset="0.75"></GradientStop>
<GradientStop Color="LimeGreen" Offset="1.0"></GradientStop>
</RadialGradientBrush>
</Rectangle.Fill>
</Rectangle>

径向渐变

这里需要设置Centetr 和GradientOrigin,center是中心点,Gradient是径向渐变轴的起点。

3.几何标绘

几何标绘通过LineGeometry、EllipseGeometry、RectangleGeometry等。通过几何标绘,我们可以标绘复杂的图形。这里不做详细说明。

本来是打算结合Blend来写的,但是由于时间太过仓促,没有在blend中实现。只有下次完成了。。

Silverlight学习(五)图形标绘的更多相关文章

  1. arcgis api for js入门开发系列五地图态势标绘(含源代码)

    上一篇实现了demo的地图查询功能,本篇新增地图态势标绘模块,截图如下: 本篇核心的在于调用API的Draw工具:https://developers.arcgis.com/javascript/3/ ...

  2. arcgis api 3.x for js 入门开发系列五地图态势标绘(附源码下载)

    前言 关于本篇功能实现用到的 api 涉及类看不懂的,请参照 esri 官网的 arcgis api 3.x for js:esri 官网 api,里面详细的介绍 arcgis api 3.x 各个类 ...

  3. ArcGIS API for Silverlight动态标绘的实现

    原文:ArcGIS API for Silverlight动态标绘的实现 1.下载2个dll文件,分别是: ArcGISPlotSilverlightAPI.dll 和 Matrix.dll 其下载地 ...

  4. 数百个 HTML5 例子学习 HT 图形组件 – 拓扑图篇

    HT 是啥:Everything you need to create cutting-edge 2D and 3D visualization. 这口号是当年心目中的产品方向,接着就朝这个方向慢慢打 ...

  5. 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(十)态势标绘模块

    config.xml文件的配置如下: <widget label="态势标绘" icon="assets/images/impact_area_over.png&q ...

  6. HTML5 例子学习 HT 图形组件

    HTML5 例子学习 HT 图形组件 HT 是啥:Everything you need to create cutting-edge 2D and 3D visualization. 这口号是当年心 ...

  7. ArcGIS API for Silverlight学习笔记

    ArcGIS API for Silverlight学习笔记(一):为什么要用Silverlight API(转) 你用上3G手机了吗?你可能会说,我就是喜欢用nokia1100,ABCDEFG跟我都 ...

  8. SVG 学习<五> SVG动画

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  9. ArcGIS For Android 的标绘与可视化

    参考 1. CSDN 相关博文 2. ArcGIS for Android 离线数据空间分析--叠加分析 3. ArcGIS for Android Runtime100 基本操作(五)——绘制图层和 ...

随机推荐

  1. wpf实现IE菜单栏自动隐藏效果

    IE菜单栏默认为隐藏状态,按下键盘Alt键后显示,菜单失去焦点则自动隐藏.下面说说WPF中如何实现这样的效果. 第一步:Menu默认设置为隐藏(Visibility="Collapsed&q ...

  2. sql必知必会(第四版) 学习笔记二 视图

    本书用到的几个表的建表sql语句如下: --销售产品供应商 CREATE TABLE Vendors ( vend_id varchar(20) not null, vend_name varchar ...

  3. node.js实践第二天

    使用Express框架搭建一个网站 1.安装Express 首先要用全局模式安装Express,因为只有这样才能在命令行中使用它.使用下述命令在伪dos命令窗口安装express. $ npm ins ...

  4. cisco asa5520 IOS故障恢复

    在ASA5520上误删除了IOS 把一台电脑IP 设置成192.168.2.2 255.255.255.0 把IOS的BIN文件复制到这台电脑上,并安装一个CISCO TFTP SERVER V1.1 ...

  5. 【IOS学习基础】weak和strong、懒加载、循环引用

    一.weak和strong 1.理解 刚开始学UI的时候,对于weak和strong的描述看得最多的就是“由ARC引入,weak相当于OC中的assign,但是weak用于修饰对象,但是他们都不会造成 ...

  6. tostring的用法

    ToString()可空参数单独使用,同时可以加一个格式化参数,具体方式如下: . 取中文日期显示_年月 currentTime.ToString("y"); 格式:2007年1月 ...

  7. Android布局控件

    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout ...

  8. python cmd模块练习

    # encoding=utf-8 import cmd import sys # cmd模块练习 class Client(cmd.Cmd): ''' 1)cmdloop():类似与Tkinter的m ...

  9. SQL Server 的 6 种隔离级别

    背景知识: 高并发一直以来是数据的所追求的目标,然,一般事物是有两面性的.不多说了,等下变邪教了.下面直接看 并发性最高的隔离级别 read uncommitted 1. read uncommitt ...

  10. SQL Server 无法启动的 4 种原因

    SQL Server 无法启动的原因定位.首先要知道SQL Server 启动的过程. 第一步: 读取注册表,创建log文件.检测硬件.初始化系统配置. 第二步: 启动系统数据库. 第三步: 准备好网 ...