C#--SVG矢量图画法示例

1.代码示例

cs 复制代码
<Viewbox   Grid.Column="1" Grid.ColumnSpan="1" Grid.RowSpan="1" >
   <Path Name="ValveShape" Stroke="Black"   Data="M 50,0 L 150,200 L 50,200 L 150,0 Z" Width="200" Height="200" StrokeThickness="1"
                        Fill="SteelBlue"  />
</Viewbox >

2.释义

Data="M 50,0 L 150,200 L 50,200 L 150,0 Z": 定义了路径的数据,描述了构成阀门形状的各个点和线段。这里是用SVG路径数据格式编写的,从(50,0)点开始,到(150,200),再到(50,200),然后到(150,0),最后闭合(Z)形成一个四边形。

3.成图效果

补充:

在XAML路径数据上下文中,ML 是用于定义路径命令的字符,它们属于SVG路径数据语法的一部分,广泛应用于矢量图形描述,包括在XAML中定义形状。这些命令指示如何从一个点移动到另一个点以及如何绘制直线。具体来说:

  • Mm 表示 Move To 命令。它用于将绘图的当前位置移动到指定的坐标,不绘制任何东西 。大写字母 M 表示绝对坐标 ,小写字母 m 表示相对于当前位置的相对坐标。

  • Ll 表示 Line To 命令。用于从当前点画一条直线到指定的坐标 。同样地,大写字母 L 使用绝对坐标,小写字母 l 使用相对坐标。

例如,在路径数据 "M 50,0 L 150,200" 中,M 50,0 首先将绘图笔移动到坐标 (50, 0),然后 L 150,200 从上一个点画一条直线到坐标 (150, 200)。

此外Zz 命令代表 ClosePath,用于关闭一个子路径,即从当前点绘制一条直线回到子路径的起始点。这在绘制封闭图形时非常有用,如圆形、矩形等。

相关推荐
KmSH8umpK8 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案进阶第三篇
redis·分布式·wpf
宝桥南山9 小时前
GitHub Models - 尝试一下使用GitHub Models
microsoft·ai·微软·c#·github·.netcore
hixiong12312 小时前
C# OpenvinoSharp部署INSID3
开发语言·人工智能·ai·c#·openvinosharp
星辰徐哥12 小时前
Unity C#入门:变量的定义与访问权限(public/private)
unity·c#·lucene
leoufung13 小时前
LeetCode 30:Substring with Concatenation of All Words 题解(含 C 语言 uthash 实现)
c语言·leetcode·c#
hacker70713 小时前
Visual Studio安装教程(C#开发版)
ide·c#·visual studio
SKY -dada13 小时前
Understand 使用教程
开发语言·c#·流程图·软件构建·敏捷流程·代码复审·源代码管理
KmSH8umpK14 小时前
Redis分布式锁从原生手写到Redisson高阶落地,附线上死锁复盘优化方案
redis·分布式·wpf
William_cl16 小时前
【C#/.NET 进阶】ASP.NET 架构与最佳实践:DI 依赖注入(IoC 核心)从入门到避坑
c#·asp.net·.net
武藤一雄16 小时前
WPF:MessageBox系统消息框
前端·microsoft·c#·.net·wpf