專業向量設計工具(Expression Design、Illustrator)匯出 XAML 時,會產生大量 `
以下為部分匯出 XAML(簡化):
<Viewbox Width="33.5947" Height="48.518" Canvas.Left="372.866" Canvas.Top="366.017">
<Canvas Width="33.5947" Height="48.518">
<Path x:Name="Path_48" Width="24.7215" Height="24.1663" Canvas.Left="0.378533" Canvas.Top="24.3516"
Stretch="Fill" StrokeThickness="1.34774" StrokeLineJoin="Round" Stroke="#FF000000"
Data="F1 M 12.7452,25.0255C 19.1965,25.0255 24.4262,30.1336 24.4262,36.4348C 24.4262,42.736 19.1964,47.8441 12.7452,47.8441C 6.29407,47.8441 0.761139,45.4245 1.0643,39.1302C 1.52682,29.528 6.29404,25.0255 12.7452,25.0255 Z">
<Path.Fill>
<LinearGradientBrush StartPoint="0.484648,0.0961876" EndPoint="1.33083,0.0961876">
<LinearGradientBrush.RelativeTransform>
<TransformGroup>
<SkewTransform CenterX="0.484648" CenterY="0.0961876" AngleX="0.0564695" AngleY="0"/>
<RotateTransform CenterX="0.484648" CenterY="0.0961876" Angle="88.7828"/>
</TransformGroup>
</LinearGradientBrush.RelativeTransform>
<GradientStop Color="#FE232531" Offset="0"/>
<GradientStop Color="#FE7976BC" Offset="1"/>
</LinearGradientBrush>
</Path.Fill>
</Path>
<!-- 更多 Path 元素... -->
</Canvas>
</Viewbox>
`Data` 字串以指令字母 + 參數構成,常見指令:
| 指令 | 意義 | 參數 |
|---|---|---|
| M / m | MoveTo (移動筆尖) | x, y |
| L / l | LineTo (直線) | x, y |
| C / c | Cubic Bezier (三次貝塞爾) | cp1.x, cp1.y, cp2.x, cp2.y, end.x, end.y |
| Q / q | Quadratic Bezier (二次貝塞爾) | cp.x, cp.y, end.x, end.y |
| A / a | Arc (橢圓弧) | radiusX, radiusY, rotationAngle, isLargeArc, sweepDirection, end.x, end.y |
| Z / z | CloseFigure (閉合) | 無 |
大寫 = 絕對座標,小寫 = 相對座標。`F1` 前綴表示填充規則 (`FillRule=NonZero`),`F0` 為 `EvenOdd`。
設計工具常輸出巢狀 `
匯出的 `
理解 Path Markup Syntax 是閱讀、手寫、優化 XAML 向量圖形的核心技能。配合 `Geometry`/`Drawing` 物件模型,開發者可在程式碼與標記間自由轉換,實現設計師與開發者的高效協作流程。