Dies zeigt, wie man es aus dem Code macht. Ich bin mir nicht sicher, ob das dein Problem löst oder nicht - du sagst "mit Blend?" im Titel, und mir ist keine Möglichkeit bekannt, dies in Blend zu tun. Aber ich hoffe, das kann helfen.
Der erste Schritt wäre die EllipseGeometry
in ein PathGeometry
zu konvertieren:
var geom = new EllipseGeometry(new Point(5, 4), 4, 4);
var pathGeometry = PathGeometry.CreateFromGeometry(geom);
Sobald Sie eine PathGeometry
haben rufen Sie einfach ToString
und es wird Ihnen die Stringdarstellung geben:
string pathText = pathGeometry.ToString();
Auf meinem System ergibt es den folgenden eher ausführlichen Text:
„M9,4C 9,6.20913899932317 7.20913899932317,8 5,8 2.79086100067683,8 1,6.20913899932317 1,4 1,1.79086100067683 2.79086100067683,0 5,0 7.20913899932317,0 9,1.79086100067683 9,4z“
Nun, wenn Sie genau wollen am Ende was du hast, wenn Sie diese Zeichenfolge in XAML zugeführt würde, müssen Sie einen weiteren Schritt, weil XAML des Formulars Sie geliefert haben:
<Path Data="M 0 5 L 3 10 10 0"/>
keine PathGeometry
erzeugt. Es erzeugt eine StreamGeometry
, die eine etwas effizientere, aber feste Darstellung des Pfades ist. (Der Hauptunterschied ist, dass Sie nicht halten, einzelne Objekte bekommen, die verschiedenen Figuren und segements in einem StreamGeometry
darstellt, während Sie können mit einem PathGeometry
. StreamGeometry
ist billiger, als Ergebnis.)
Sie können eine StreamGeometry
bekommen vom Pfad Text:
var streamGeometry = StreamGeometry.Parse(pathText);
Und dann, wenn Sie in einem Path
es, dass nur bauen:
var p = new Path { Data = streamGeometry };
auf dem, was Ihr genaues Ziel Je Es gibt möglicherweise effizientere Möglichkeiten, dies zu tun. (StreamGeometry
ist eine effizientere Darstellung, weil es am Ende viel weniger Objekte erstellt. Aber die Route, mit der mein Code zu dieser Darstellung gelangt, ist nicht sehr effizient, so dass Sie besser mit dem PathGeometry
stoppen, die das erste Code-Snippet erzeugt .Alternativ, wenn Ihr Ziel wirklich nur ist, um den Pfad Text zu bekommen, dann ist die PathGeometry
auch ausreichend für Ihre Bedürfnisse.)
Duplizieren von http://StackOverflow.com/Questions/5227830/convert-Geometry-Path-to- Minilanguage-String – jpierson