【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>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM