WPF的图形微语言

WPF的图形微语言

前言

WPF为定义几何图形增加了一种更简明的替换语法,通过该语法可用更少的标记表示详细的图形,这种语法称为图形微语言,并且由于应用于Path元素,也称为路径微语言。

示例

使用两条闭合路径创建了一个基本三角形

<Path Stroke="Blue"><Path.Data><PathGeometry><PathFigure IsClosed="True" StartPoint="10,100"><LineSegment Point="100,100"/><LineSegment Point="100,50"/></PathFigure></PathGeometry></Path.Data>
</Path>

使用微语言创建该图形

<Path Stroke="Blue" Data="M 10,100 L 100,100 L 100,50 Z"/>

这个路径使用一个包含4个命令序列,第一个命令M创建PathFigure,并将起点设置为(10,100),接下来的两个命令L创建线段,最后一个命令Z结束PathFigure,并将IsClose属性设置为true,这个字符串的逗号是可选的,同样命令及其参数之间的空格也是可选的,但在相邻的两个参数之间以及命令之间要保留一个空格。

进一步精简为下面的形式:

<Path Stroke="Blue" Data="M10 100 L100 100 L100 50 Z"/>

当使用微语言创建几何图形时,实际上是创建了StreamGeometry对象而不是PathGeometry对象,因此,以后再代码中不能修改图形。如果这是不能接受的,可显示的创建PathGeometry,但使用相同的语法定义其PathFigure对象几何。

<Path Stroke="Blue"><Path.Data><PathGeometry Figures="M 10,100 L 100,100 L 100,50 Z"/></Path.Data>
</Path>
名称说明
F value设置Geometry.FillRule属性。0表示EvenOdd,1表示NoneZero。如果决定使用该命令,就必须将该命令放在字符串的开头
M x,y为几何图形创建新的PathFigure对象,并设置其起点。
L x,y创建一条到指定点的LineSegment几何图形。
H x,y使用指定的X值创建一条水平的LineSegment几何图形,并保持Y值不变。
V x,y使用指定的Y值创建一条水平的LineSegment几何图形,并保持X值不变。
A radiusX,radiusY创建一条到指定点的ArgSegment线段。
C x1,y1,x2,y2 x,y创建到指定点的贝塞尔曲线,使用(x1,y1)和(x2,y2)作为控制点。
Q x1,y1 x,y创建到指定点的二次贝塞尔曲线,使用一个控制点(x1,y1)。
S x2,y2 x,y通过将前一条贝塞尔曲线的第二个控制点作为新建贝塞尔曲线的第一个控制点,从而创建一条光滑的贝塞尔曲线。
Z结束当前PathFigure对象,并将IsClosed属性设置为true。如果不希望将IsClosed属性设置为true,就不必使用该命令。如果希望开始一个新的PathFigure对象或者结束字符串,只需使用M命令

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/46372.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Avue-Card用法

1、基本属性 <template> <!-- 基础组件 --><basic-container><!-- <el-button clickexportHandle>导出</el-button> --><avue-crud//设置表格属性:option"option"//来存取页面的值v-model"form"//获取后台数据:dat…

蓝桥杯每日N题 (砝码称重)

大家好 我是寸铁 希望这篇题解对你有用&#xff0c;麻烦动动手指点个赞或关注&#xff0c;感谢您的关注 不清楚蓝桥杯考什么的点点下方&#x1f447; 考点秘籍 想背纯享模版的伙伴们点点下方&#x1f447; 蓝桥杯省一你一定不能错过的模板大全(第一期) 蓝桥杯省一你一定不…

Python入门教程 | Python简介和环境搭建

Python 简介 Python是一种高级编程语言&#xff0c;由荷兰人Guido van Rossum于1991年创建。它以其简单易学、可读性强和丰富的生态系统而受到广泛喜爱。它被广泛应用于各个领域&#xff0c;包括Web开发、科学计算、数据分析、人工智能等。 Python的特点 简洁易读&#xff1a…

回归预测 | MATLAB实现TSO-LSSVM金枪鱼群算法优化最小二乘支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现TSO-LSSVM金枪鱼群算法优化最小二乘支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现TSO-LSSVM金枪鱼群算法优化最小二乘支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&a…

免费开源的vue+express搭建的后台管理系统

此项目已开源 前端git地址&#xff1a;exp后台管理系统前端: exp后台管理系统前端 后端git地址&#xff1a;express后台管理系统: express后台管理系统 安装运行 npm i yarn i 前端: npm run dev | yarn dev 后端: npm run start | yarn start 主要技术栈 前端后端名称版本名…

大数据及软件教学与实验专业实训室建设方案

一 、系统概述 大数据及软件教学与实验大数据及软件教学与实验在现代教育中扮演重要角色&#xff0c;这方面的教学内容涵盖了大数据处理、数据分析、数据可视化和大数据应用等多个方面。以下是大数据及软件教学与实验的一般内容&#xff1a;1. 数据基础知识&#xff1a;教授学生…

redis--事务

redis事务 在Redis中&#xff0c;事务是一组原子性操作的集合&#xff0c;它们被一起执行&#xff0c;要么全部执行成功&#xff0c;要么全部回滚。虽然Redis的事务并不遵循传统数据库的ACID特性&#xff0c;但它仍然提供了一种将多个命令打包成一组执行的机制&#xff0c;适用…

Unity启动项目无反应的解决

文章首发见博客&#xff1a;https://mwhls.top/4803.html。 无图/格式错误/后续更新请见首发页。 更多更新请到mwhls.top查看 欢迎留言提问或批评建议&#xff0c;私信不回。 摘要&#xff1a;通过退还并重新载入许可证以解决Unity项目启动无反应问题。 场景 Unity Hub启动项目…

ZLMediakit-method ANNOUNCE failed: 401 Unauthorized

使用ffmpeg推流&#xff1a; nohup ffmpeg -stream_loop -1 -re -i "/usr/local/mp4/test.mp4" -vcodec h264 -acodec aac -f rtsp -rtsp_transport tcp rtsp://10.55.134.12/live/test &[rootlocalhost ~]# ffmpeg -stream_loop -1 -re -i "/usr/local/mp…

人脸老化预测(Python)

本次项目的文件 main.py主程序如下 导入必要的库和模块&#xff1a; 导入 TensorFlow 库以及自定义的 FaceAging 模块。导入操作系统库和参数解析库。 定义 str2bool 函数&#xff1a; 自定义函数用于将字符串转换为布尔值。 创建命令行参数解析器&#xff1a; 使用 argparse.A…

视觉学习(八)---zed调用yolov5之目标检测遇到的问题及解决

1.前言 zed调用yolov5进行目标检测时遇到的问题&#xff0c;记录下~~ 2.环境信息 开发板&#xff1a;Jetson Xviewer NX 摄像头&#xff1a; zed2系统&#xff1a;Ubuntu18.043.问题及解决 问题1&#xff1a; RuntimeError: cuDNN error: CUDNN_STATUS_MAPPING_ERROR 原因&…

【LINUX相关】生成随机数(srand、/dev/random 和 /dev/urandom )

目录 一、问题背景二、修改方法2.1 修改种子2.2 使用linux中的 /dev/urandom 生成随机数 三、/dev/random 和 /dev/urandom 的原理3.1 参考连接3.2 重难点总结3.2.1 生成随机数的原理3.2.2 随机数生成器的结构3.2.3 二者的区别和选择 四、在代码的使用方法 一、问题背景 在一个…

RabbitMq-2安装与配置

Rabbitmq的安装 1.上传资源 注意&#xff1a;rabbitmq的版本必须与erlang编译器的版本适配 2.安装依赖环境 //打开虚拟机 yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c kernel-devel m4 ncurses-devel tk tc xz3.安装erlan…

理解docker命令

基础命令 帮助命令 docker --help&#xff08;帮助命令&#xff09; 用于获取某个命令的帮助信息 #命令帮助 docker 命令 --help 小技巧 换行符 \ 使用命令换符&#xff0c;可以让繁杂命令变得有条理 #命令换行&#xff0c;使用换行符 \ docker ... \... \ 镜像命令 d…

不含数字的webshell绕过

异或操作原理 1.首先我们得了解一下异或操作的原理 在php中&#xff0c;异或操作是两个二进制数相同时&#xff0c;异或(相同)为0&#xff0c;不同为1 举个例子 A的ASCII值是65&#xff0c;对应的二进制值是0100 0001 的ASCII值是96&#xff0c;对应的二进制值是 0110 000…

Android11 中 LED 使用-RK3568

文章目录 前言原理图设备树驱动前言 现在我们来学习点亮LED 原理图 然后对应在核心板原理图上查找 Working_LEDEN_H_GPIO0_B7,如下图所示: 那么我们只要控制 GPIO0_B7 即可控制 led 的亮灭。 设备树 leds: leds {compatible = "gpio-leds";work_led: work {gpi…

6-模板初步使用

官网: 中文版: 介绍-Jinja2中文文档 英文版: Template Designer Documentation — Jinja Documentation (2.11.x) 模板语法 1. 模板渲染 (1) app.py 准备数据 import jsonfrom flask import Flask,render_templateimport settingsapp Flask(__name__) app.config.from_obj…

flutter Android 打包和发布

环境 mac vscode 项目简易打包 打开VScode终端&#xff1a;输入命令flutter build apk即可 可能报错&#xff1a; w: Runtime JAR files in the classpath should have the same version. These files were found in the classpath: 修改android/build.gradle 中版本信息 项…

上海亚商投顾盘:沪指震荡反弹 机器人概念股掀涨停潮

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪 三大指数今日震荡反弹&#xff0c;科创50盘中涨超1%。机器人概念股掀涨停潮&#xff0c;通力科技、昊志机电、哈焊…

Java实现将内容写到文件里面

目录 1 实现 1 实现 String appendLog "";File logFile new File(logFileName);// append file contentFileOutputStream fos null;try {fos new FileOutputStream(logFile, true);fos.write(appendLog.getBytes("utf-8"));fos.flush();} catch (Ex…