Win10系列:C#应用控件进阶4
多边形
若要绘制多边形需要用到Polygon元素,并通过定义一系列的点绘制多边形。Polygon类型的对象有Points属性, 这个属性用来定义组成边的点集。在前台代码中,使用空格分隔各个点,然后利用逗号分隔坐标点来定义点坐标。不必为了将起点和终点指定为相同的值而声明闭合点,Polygon类假设要定义闭合形状,并且会自动将终点与起点连起来。下面将演示如何绘制一个多边形。
在一个打开的Windows应用商店项目中新建一个空白页,并命名为PolygonPage,双击打开此页面的PolygonPage.xaml文件,在Grid元素中添加如下代码。
<Polygon Fill="Red" Points="70,100 10,200 210,200 100,100" />
上面的代码使用Polygon控件的Points属性设置多边形的4个顶点坐标分别为 (70,100)、(10,200)、(210,200)和(100,100),接着使用Red给Fill属性赋值,从而绘制一个填充颜色为红色的多边形。没有对Stroke属性赋值,以便它没有外围轮廓。
接下来介绍使用后台代码绘制多边形。与前台代码不一样的是,后台代码需要使用 PointCollection类型的对象存放各个点,接着将每个点作为一个Point对象添加到集合中,然后把集合对象的值赋值给Points属性,这样便可以绘制与前台一样的多边形。代码如下所示:
public PolygonPage()
{
this.InitializeComponent();
Polygon polygon = new Polygon();
polygon.Fill = new SolidColorBrush(Colors.Red);
//实例化一个pointCollenction的对象
PointCollection points = new PointCollection();
//添加点
points.Add(new Point(70, 100));
points.Add(new Point(10, 200));
points.Add(new Point(210, 200));
points.Add(new Point(100, 100));
//设置polygon的点
polygon.Points = points;
MyCanvas.Children.Add(polygon);
}
在上面的代码中,首先实例化一个Polygon类型的对象polygon,设定Stroke属性为红色,接着定义存放点集的PointCollection类型的points对象,利用points对象的Add属性添加四个点,然后把points赋值给polygon对象的Points属性,这样便可以绘制一个与前台方式实现效果一致的多边形,最后调用MyCanvas容器对象的Children属性中的Add方法,将这个多边形加入到页面中显示。
运行此页面,绘制多边形的效果如图8-5所示。

图8-5 简单的多边形
Win10系列:C#应用控件进阶4的更多相关文章
- Win10系列:JavaScript 控件的使用
向页面中添加的控件可分为两种类型:标准的HTML控件和WinJS库控件.其中标准的HTML控件是指HTML标准中定义的基本控件,如按钮和复选框:WinJS库控件是为开发基于JavaScript 的Wi ...
- WPF 模仿 UltraEdit 文件查看器系列一 用户控件
WPF 模仿 UltraEdit 文件查看器系列一 用户控件 运行环境:Win10 x64, NetFrameWork 4.8, 作者:乌龙哈里,日期:2019-05-10 章节: 起步 添加用户控件 ...
- C#控件系列--文本类控件
C#控件系列--文本类控件 文本类控件主要包含Label.LinkLabel.Button.TextBox以及RichTextBox. Label 功能 Label用来 ...
- WPF从我炫系列4---装饰控件的用法
这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollView ...
- WPF编游戏系列 之四 用户控件
原文:WPF编游戏系列 之四 用户控件 在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2. ...
- 【转】PyQt5系列教程(七)控件
PyQt5系列教程(七)控件 软硬件环境 Windows 10 Python 3.4.2 PyQt 5.5.1 PyCharm 5.0.4 前言 控件是PyQt应用程序的基石.PyQt5自带很多不 ...
- Win10系列:C#应用控件进阶10
EllipseGeometry EllipseGeometry控件可以用于绘制椭圆,通过定义EllipseGeometry控件的Center属性确定椭圆的圆心坐标,使用此控件的RadiusX 和Rad ...
- Win10系列:C#应用控件进阶8
LineGeometry LineGeometry控件通过指定直线的起点和终点来定义线.LineGeometry对象无法进行自我绘制,因此同样需要使用 Path元素来辅助呈现.LineGeometry ...
- Win10系列:C#应用控件进阶9
RectangleGeometry 在使用RectangleGeometry控件绘制矩形时,矩形的位置和尺寸由Rect属性定义,该属性指定矩形的相对位置.高度和宽度.Rect有四个参数,前两个参数表示 ...
- Win10系列:C#应用控件进阶7
PathGeometry 前面介绍了Path的使用方法,接下来介绍PathGeometry类.PathGeometry提供了描绘由弧线.曲线和直线组成的多个复杂图形的方法.PathGeometry的核 ...
随机推荐
- java线程学习之synchronized关键字
关键字synchronized的作用是实现线程间的同步.它的任务是对同步的代码加锁.一个代码块同时只能有同一个线程进行读和写操作,从而保证线程间是安全的. 线程安全的概念是:当多个线程访问某一个类(对 ...
- 微信省市区 Mysql数据库
$jsonStr = '[{"cities":["\u5b89\u5e86","\u868c\u57e0","\u4eb3\u5d ...
- APScheduler
目录 APScheduler简介 支持的后端存储作业 集成的Python框架 APScheduler下载安装 APScheduler组件 各组件简介 调度器 作业存储器 执行器 触发器 使用 添加作业 ...
- jmeter的新增函数说明
本文算是对<零成本实现Web性能测试:基于Apache JMeter>中的<详解JMeter函数和变量>进行狗尾续貂哈,因为最近版本的jmeter增加了几个新函数,在原书中没有 ...
- WebSocket 的理解
WebSocket是HTML5开始提供的一种浏览器与服务器间进行全双工通讯的网络技术.依靠这种技术可以实现客户端和服务器端的长连接,双向实时通信. 它的最大特点就是,服务器可以主动向客户端推送信息,客 ...
- C#线程同步(4)- 通知&EventWaitHandle一家
文章原始出处 http://xxinside.blogbus.com/logs/47523285.html 预备知识:C#线程同步(1)- 临界区&Lock,C#线程同步(2)- 临界区&am ...
- 错误模块“AspNetCoreModuleV2"解决
如图 HTTP 错误 500.21 - Internal Server Error 处理程序"aspNetCore"在其模块列表中有一个错误模块"AspNetCoreMo ...
- sublime Text3下载与安装以及解决安装Install Package时遇见的问题
最近下载安装sublime Text3后,在安装Install Package时遇到了几个问题,网上搜了一大圈终于解决了,特此记录为以后之便. 一.下载安装sublime Text3 1.sublim ...
- VirtualBox中CentOS7.2 网络配置(固定IP+联网)
一.前言 用虚拟机装Linux系统时,经常会出现一些问题.比如:从主机到虚拟机之间网络不通:虚拟机中无法联网:虚拟机中的IP地址不固定.为了解决这些问题,我曾花了不少时间.在此,记下填坑方法. 二.环 ...
- Kotlin 接口
Kotlin 接口与 Java 8 类似,使用 interface 关键字定义接口,允许方法有默认实现: interface MyInterface { fun bar() // 未实现 fun fo ...