1. ホーム
  2. c#

WPF C# Path: パスデータを持つ文字列からジオメトリをコードで取得する方法(XAMLでは不可)

2023-11-12 04:38:04

質問

WPFのPathオブジェクトをCodeで生成したい。

XAMLで私はこれを行うことができます。

 <Path Data="M 100,200 C 100,25 400,350 400,175 H 280">

同じことをCodeで行うにはどうしたらよいでしょうか?

 Path path = new Path();
 Path.Data = "foo"; //This won't accept a string as path data.

PathDataを含む文字列をPathGeometryなどに変換するクラス/Methodは用意されていますか?

確かに、何らかの方法でXAMLが解析され、Data-stringが変換されるのでしょうか?

どのように解決するのですか?

var path = new Path();
path.Data = Geometry.Parse("M 100,200 C 100,25 400,350 400,175 H 280");

Path.DataはGeometry型です。 使用方法 <ストライク リフレクタ ジャストデコンパイル (レッドゲート) Geometry の TypeConverterAttribute(xamlシリアライザが型の値を変換するのに使う)の定義を見てみると string から Geometry ). このことから、GeometryConverterにたどり着きました。 実装をチェックしてみると,これは Geometry.Parse を使って、パスの文字列値を Geometry インスタンスに変換している。