WPF C# Path: How to get from a string with Path Data to Geometry in Code (not in XAML)
var path = new Path();path.Data = Geometry.Parse("M 100,200 C 100,25 400,350 400,175 H 280");
Path.Data is of type Geometry. Using Reflector JustDecompile (eff Red Gate), I looked at the definition of Geometry for its TypeConverterAttribute (which the xaml serializer uses to convert values of type string
to Geometry
). This pointed me to the GeometryConverter. Checking out the implementation, I saw that it uses Geometry.Parse
to convert the string value of the path to a Geometry instance.
To make geometry from original text string You could use System.Windows.Media.FormattedText class with BuildGeometry() Method
public string Text2Path() { FormattedText formattedText = new System.Windows.Media.FormattedText("Any text you like", CultureInfo.GetCultureInfo("en-us"), FlowDirection.LeftToRight, new Typeface( new FontFamily(), FontStyles.Italic, FontWeights.Bold, FontStretches.Normal), 16, Brushes.Black); Geometry geometry = formattedText.BuildGeometry(new Point(0, 0)); System.Windows.Shapes.Path path = new System.Windows.Shapes.Path(); path.Data = geometry; string geometryAsString = geometry.GetFlattenedPathGeometry().ToString().Replace(",",".").Replace(";",","); return geometryAsString; }