我們用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>