• 【WPF】WPF的二维路径标记语法绘图PathGeometry


    我们用Path来实现一条直线:

    <Path Stroke="Black" StrokeThickness="1" >
            <Path.Data>
                <LineGeometry StartPoint="10,20" EndPoint="100,130" />
            </Path.Data>
        </Path>

    这种方式下写一些简单的几何图形还行,但对于PathGeometry来说有些冗繁,因此XAML采用了一种简单的路径标记语法来简化这一过程,

     <Path Stroke="Black" Fill="Gray">
            <Path.Data>
                <PathGeometry Figures="M 10,100 L 10,150 Q 10,300 300,-200" />
            </Path.Data>
        </Path>

    甚至可以直接简化为:

    <Path Stroke="Black" Fill="Gray" Data="M 10,100 L 10,150 Q 10,300 300,-200" />

    这里简单解释下:

    M 是值起始点(Move移动到某一个位置)大写的 M 指示 startPoint 是绝对值;小写的 m 指示 startPoint 是相对于上一个点的偏移量。

    L是绘制一条直线(Line 当前点到指定点的一条直线)

    Q / T(平滑)是二次贝塞尔曲线,有两个点:一个控制点,一个结束点

    C / S(平滑)是三次方贝塞尔曲线,有三个点:两个控制点,一个结束点

    H / V 分别是水平直线和垂直直线。

    A 创建一条椭圆弧线,这个就比较复杂了,A size(弧线的 x 轴半径和 y 轴半径) rotationAngle(椭圆的旋转度数) isLargeArcFlag(如果弧线的角度应大于或等于 180 度,则设置为 1;否则设置为 0) sweepDirectionFlag(如果弧线按照正角方向绘制,则设置为 1;否则设置为 0) endPoint(结束点)

    Z 结束。

    其他详细参数:路径标记语法

    例子:Border设置一个不规则背景色

    <Border Grid.Row="2" Grid.Column="1" Width="200" Height="200">
                <Border.Background>
                    <DrawingBrush>
                        <DrawingBrush.Drawing>
                            <GeometryDrawing Brush="Gold">
                                <GeometryDrawing.Geometry>
                                    <PathGeometry Figures="M0,-100 L25,-100 A25,25 180,1,1 75,-100 L 100,-100 Q 200,-200 100,100 H0 Q-100,-200 0,-100 Z"></PathGeometry>
                                </GeometryDrawing.Geometry>
                                <GeometryDrawing.Pen>
                                    <Pen Thickness="2" Brush="Tomato" />
                                </GeometryDrawing.Pen>
                            </GeometryDrawing>
                        </DrawingBrush.Drawing>
                    </DrawingBrush>
                </Border.Background>
            </Border>

  • 相关阅读:
    Ubuntu16.04上安装搜狗输入法
    RAM的分类
    解耦技巧——依赖注入!
    傻瓜式学Python3——列表
    Java Builder 模式,你搞懂了么?
    String 源码浅析(一)
    线上CPU100%?看看这篇是怎么排查的!
    生物医学工程SCI期刊投稿(转)
    免费下载文献
    泰山攻略
  • 原文地址:https://www.cnblogs.com/mqxs/p/14874245.html
Copyright © 2020-2023  润新知