XAMLで好きな形を描く

WPFのShapeの一つにPathというものがあります。

名前だけだとPolylineのような感じがしますが、色々なものが描画できます。

パスマークアップ

HtmlのSVGでも採用されている図形描画用の構文です。

例えば以下の図形を描くには下記のようなコードになります。

f:id:any-programming:20170221002105p:plain

<Path Data="M15,15 L85,85 M85,15 L15,85 M50,0 A50,50 0 0 0 50,100 A50,50 0 0 0 50,0" Stroke="Red" StrokeThickness="5" />


Dataの中身を詳しく

M15,15 L85,85

(15, 15)へ移動して(85, 85)まで線を引く
f:id:any-programming:20170221002947p:plain
M85,15 L15,85

(85, 15)へ移動して(15, 85)まで線を引く
f:id:any-programming:20170221004052p:plain
M50,0 A50,50 0 0 0 50,100

(50, 0)へ移動して半径50の円弧を(50, 100)まで描く
f:id:any-programming:20170221004146p:plain
A50,50 0 0 0 50,0

現在の位置(50, 100)から半径50の円弧を(50, 0)まで描く
f:id:any-programming:20170221002105p:plain


マウスイベント

マウスイベントも描画されたところのみ発行されるようになっています。

その他の図形

H 横線
V 縦線
Q, T 2次ベジエ曲線
C, S 3次ベジエ曲線