多边形

若要绘制多边形需要用到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的更多相关文章

  1. Win10系列:JavaScript 控件的使用

    向页面中添加的控件可分为两种类型:标准的HTML控件和WinJS库控件.其中标准的HTML控件是指HTML标准中定义的基本控件,如按钮和复选框:WinJS库控件是为开发基于JavaScript 的Wi ...

  2. WPF 模仿 UltraEdit 文件查看器系列一 用户控件

    WPF 模仿 UltraEdit 文件查看器系列一 用户控件 运行环境:Win10 x64, NetFrameWork 4.8, 作者:乌龙哈里,日期:2019-05-10 章节: 起步 添加用户控件 ...

  3. C#控件系列--文本类控件

    C#控件系列--文本类控件         文本类控件主要包含Label.LinkLabel.Button.TextBox以及RichTextBox. Label 功能         Label用来 ...

  4. WPF从我炫系列4---装饰控件的用法

    这一节的讲解中,我将为大家介绍WPF装饰控件的用法,主要为大家讲解一下几个控件的用法. ScrollViewer滚动条控件 Border边框控件 ViewBox自由缩放控件 1. ScrollView ...

  5. WPF编游戏系列 之四 用户控件

    原文:WPF编游戏系列 之四 用户控件        在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2. ...

  6. 【转】PyQt5系列教程(七)控件

    PyQt5系列教程(七)控件   软硬件环境 Windows 10 Python 3.4.2 PyQt 5.5.1 PyCharm 5.0.4 前言 控件是PyQt应用程序的基石.PyQt5自带很多不 ...

  7. Win10系列:C#应用控件进阶10

    EllipseGeometry EllipseGeometry控件可以用于绘制椭圆,通过定义EllipseGeometry控件的Center属性确定椭圆的圆心坐标,使用此控件的RadiusX 和Rad ...

  8. Win10系列:C#应用控件进阶8

    LineGeometry LineGeometry控件通过指定直线的起点和终点来定义线.LineGeometry对象无法进行自我绘制,因此同样需要使用 Path元素来辅助呈现.LineGeometry ...

  9. Win10系列:C#应用控件进阶9

    RectangleGeometry 在使用RectangleGeometry控件绘制矩形时,矩形的位置和尺寸由Rect属性定义,该属性指定矩形的相对位置.高度和宽度.Rect有四个参数,前两个参数表示 ...

  10. Win10系列:C#应用控件进阶7

    PathGeometry 前面介绍了Path的使用方法,接下来介绍PathGeometry类.PathGeometry提供了描绘由弧线.曲线和直线组成的多个复杂图形的方法.PathGeometry的核 ...

随机推荐

  1. RESTClient 使用

    Wisdom RESTClient 一款自动化测试REST API的工具,它可以自动化测试RESTful API并生成精美的测试报告,同时基于测试过的历史API,可以生成精美的RESTful API文 ...

  2. Python爬虫与一汽项目【一】爬取中海油,邮政,国家电网问题总结

    项目介绍 中国海洋石油是爬取的第一个企业,之后依次爬取了,国家电网,中国邮政,这三家公司的源码并没有多大难度, 采购信息地址: 国家电网电子商务平台 http://ecp.sgcc.com.cn/pr ...

  3. Windows下ActiveMQ的下载和启动

    1.打开浏览器,访问网址activemq.apache.org,如下图所示: 2.下载最新的版本,当前最新版本为5.15.5,根据ActiveMQ需要安装的操作系统选择性下载对应的版本,这里我选择Wi ...

  4. Tomcat类加载

    一.为什么会有类加载 1.在类加载阶段,虚拟机需要完成以下3件事情 1)通过一个全限类定名来获取此类的二进制字节流 2) 将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构 3)在内存中生成 ...

  5. VueScroller 使用

    下载插件  npm install vue-scroller -D 引入插件: import Vue from 'vue'import VueScroller from 'vue-scroller' ...

  6. wordpress安装教程

    最近安装了wordpress来搭建自己的网站,过程有些艰辛,以防以后转移服务器再次遇到这个难题,在此记下自己的这次安装过程以及一些问题,同时也供遇到相同问题的初次接触者做参考. 另外说明一下我用的操作 ...

  7. arch安装以及配置记录

    设置ip和网关 ifconfig eth0 10.82.16.233 netmask 255.255.255.0 route add default gw 10.82.16.1 或者 ip addr ...

  8. Spring Boot 线程池

    参考 SpringBoot 线程池 程序猿DD-Spring Boot使用@Async实现异步调用:自定义线程池 如何优雅的使用和理解线程池 Spring Boot线程池的使用心得 博客园-Sprin ...

  9. XSS漏洞学习笔记

    XSS漏洞学习 简介 xss漏洞,英文名为cross site scripting. xss最大的特点就是能注入恶意的代码到用户浏览器的网页上,从而达到劫持用户会话的目的. 说白了就是想尽办法让你加载 ...

  10. c# 集合去重并筛选

    (from context in retDataList group context by context.ResourceId into g select g.OrderByDescending(b ...