原文:WPF入门(三)->几何图形之不规则图形(PathGeometry)

前面我们给大家介绍了LineGeometry,EllipseGeometry,CombinedGeometry等一些规则图形的使用方法,下面我们来看下如何使用PathGeometry来创建不规则图形

PathGeometry类:表示一个可能由弧、曲线、椭圆、直线和矩形组成的复杂形状。

下面先来看一段代码

<Window x:Class="WPF.SimpleGraph.PathFill.Window1"        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"        Title="Window1" Height="300" Width="300">    <Canvas>        <Path Stroke="DarkGray" StrokeThickness="2">            <Path.Data>                <PathGeometry>                    <PathFigure StartPoint="80,40" IsClosed="False">                        <LineSegment Point="160,40"></LineSegment>                        <LineSegment Point="200,100"></LineSegment>                        <LineSegment Point="80,100"></LineSegment>                        <LineSegment Point="80,40"></LineSegment>                    </PathFigure>                </PathGeometry>            </Path.Data>        </Path>    </Canvas></Window>

执行结果是:

根据执行的结果,我们可以看到,程序画出了一个不等边的矩形,下面我们来分析一下,该图形是如何画出来了。

PathFigure类:表示几何图形的一个子部分、一系列单独连接的二维几何线段

首先我们看到在PathGeometry元素中我们添加了一个名为PathFigure的元素,它表示PathGeometry图形的一部分,一个PathGeometry图形可以包含一个或多个PathFigure。PathFigure有一个StartPoint属性,它表示该几何图形线段的起始位置

LineSegment表示在PathFigure中两个点之间的一条连线。

<LineSegment Point="160,40"></LineSegment>

该代码表示定义一条线,它的起始位置是PathFigure的StartPoint,结束位置是LineSegment的Point

第二条线

<LineSegment Point="160,40"></LineSegment><LineSegment Point="200,100"></LineSegment>

它的起始位置是上一个LineSegment的Point,结束位置是它自己的Point,前后两条线条是互相连贯的。

本程序的划线步骤如下图:

<PathFigure StartPoint="80,40" IsClosed="False">

在PathFigure元素中有一个属性IsClosed,该属性的含义表示是否将最后一个端点与StartPoint连接,true=连接,false=不连接

WPF入门(三)->几何图形之不规则图形(PathGeometry)的更多相关文章

  1. WPF入门(三)->几何图形之不规则图形(PathGeometry) (2)

    原文:WPF入门(三)->几何图形之不规则图形(PathGeometry) (2) 上一节我们介绍了PathGeometry中LineSegment是点与点之间绘制的一条直线,那么我们这一节来看 ...

  2. WPF入门(三)->几何图形之矩形(RectangleGeometry)

    原文:WPF入门(三)->几何图形之矩形(RectangleGeometry) 我们可以使用RectangleGeometry来绘制一个矩形或者正方形 RectangleGeometry 类:描 ...

  3. WPF入门(三)->几何图形之椭圆形(EllipseGeometry)

    原文:WPF入门(三)->几何图形之椭圆形(EllipseGeometry) 我们可以使用EllipseGeometry 来绘制一个椭圆或者圆形的图形 EllipseGeometry类: 表示圆 ...

  4. WPF入门(三)->几何图形之线条(LineGeometry)

    原文:WPF入门(三)->几何图形之线条(LineGeometry) 前一章我们对wpf的xaml语言有了一定的了解,那么我们现在开始来学习如何使用wpf来画出几何图形. LineGeometr ...

  5. WPF入门(三)->两个几何图形合并(CombinedGeometry)

    原文:WPF入门(三)->两个几何图形合并(CombinedGeometry) 在WPF中,提供了一个CombinedGeometry对象可以使两个几何图形合并产生效果 CombinedGeom ...

  6. WPF入门教程系列二十三——DataGrid示例(三)

    DataGrid的选择模式 默认情况下,DataGrid 的选择模式为“全行选择”,并且可以同时选择多行(如下图所示),我们可以通过SelectionMode 和SelectionUnit 属性来修改 ...

  7. WPF入门教程系列三——Application介绍(续)

    接上文WPF入门教程系列二——Application介绍,我们继续来学习Application 三.WPF应用程序的关闭 WPF应用程序的关闭只有在应用程序的 Shutdown 方法被调用时,应用程序 ...

  8. C#WPF 如何绘制几何图形 图示教程 绘制sin曲线 正弦 绘制2D坐标系 有图有代码

    原文:C#WPF 如何绘制几何图形 图示教程 绘制sin曲线 正弦 绘制2D坐标系 有图有代码 C#WPF 如何绘制几何图形? 怎么绘制坐标系?绘制sin曲线(正弦曲线)? 这离不开Path(Syst ...

  9. [WPF] 使用三种方式实现弧形进度条

    1. 需求 前天看到有人问弧形进度条怎么做,我模仿了一下,成果如下图所示: 当时我第一反应是可以用 Microsoft.Toolkit.Uwp.UI.Controls 里的 RadialGauge 实 ...

随机推荐

  1. python基础-合并列表

    1.append()  向列表尾部追加一个新元素,列表只占一个索引位,在原有列表上增加 2.extend() 向列表尾部追加一个列表,将列表中的每个元素都追加进来,在原有列表上增加 3.+  直接用+ ...

  2. python3 turtle 画围棋棋盘

    python3 环境 利用turtle模块画出 围棋棋盘 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Hiuhung Wan impor ...

  3. java.util.ConcurrentModificationException(如何避免ConcurrentModificationException)

    java.util.ConcurrentModificationException is a very common exception when working with java collecti ...

  4. OpenNI2获取华硕XtionProLive深度图和彩色图并用OpenCV显示

    使用OpenNI2打开XtionProLive时有个问题,彩色图分辨率不管怎样设置始终是320*240,深度图倒是能够设成640*480,而OpenNI1.x是能够获取640*480的彩色图的. 彩色 ...

  5. C语言free函数的原理——————————【Badboy】

    今天在网上看到了这样一个问题,"假设malloc 了一块字符串的内存.然后,它改变了这个字符串的大小,问会不会有一部分内存没有被释放掉."这个问题,曾经的确没有细致想过. 当然.我 ...

  6. POJ 2590 Steps (ZOJ 1871)

    http://poj.org/problem?id=2590 http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1871 题目大 ...

  7. MySQLDump在使用之前一定要想到的事情

    MySQLDump经常用于迁移数据和备份. 下面创建实验数据,两个数据库和若干表create database db1 ;use db1;create table t1(id int primary ...

  8. 【u243】拓扑排序

    Time Limit: 1 second Memory Limit: 128 MB [问题描述] 一些历史迷们打算把历史上的一些大事件按时间顺序列出来.但是,由于资料不全,每个事件发生的具体时间都没有 ...

  9. 【20.23%】【codeforces 740A】Alyona and copybooks

    time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...

  10. AE中地图查询方式

    樱木 原文 AE中地图查询方式 地图查询主要有两种查询:空间查询和属性查询 所用到知识点: 1  Cursor(游标)对象 本质上是一个指向数据的指针,本身不包含数据内容,提供一个连接到ROW对象或者 ...