Ceci montre comment le faire à partir du code. Je ne suis pas sûr si cela va résoudre votre problème ou non - vous dites "avec mélange"? dans le titre, et je ne suis pas au courant d'un moyen de le faire dans Blend. Mais j'espère que cela peut aider.
La première étape serait de convertir le EllipseGeometry
en PathGeometry
:
var geom = new EllipseGeometry(new Point(5, 4), 4, 4);
var pathGeometry = PathGeometry.CreateFromGeometry(geom);
Une fois que vous avez un PathGeometry
vous pouvez simplement appeler ToString
et il vous donnera la représentation chaîne:
string pathText = pathGeometry.ToString();
Sur mon système, ceci produit le texte plutôt bavard suivant:
"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 »
Maintenant, si vous voulez finir avec exactement ce que vous auriez obtenu si vous nourri cette chaîne en XAML, vous avez besoin d'une étape supplémentaire, parce que Xaml de la forme que vous avez fourni:
<Path Data="M 0 5 L 3 10 10 0"/>
ne produit pas un PathGeometry
. Il produit un StreamGeometry
, ce qui est une représentation légèrement plus efficace, mais fixe du chemin. (La principale différence étant que vous ne pouvez pas mettre la main sur des objets individuels représentant les différentes figures et segements dans un StreamGeometry
, alors que vous pouvez avec un PathGeometry
. StreamGeometry
est moins cher, en conséquence.)
Vous pouvez obtenir un StreamGeometry
du texte de chemin:
var streamGeometry = StreamGeometry.Parse(pathText);
Et si vous voulez que dans un Path
juste le construire:
var p = new Path { Data = streamGeometry };
Selon ce que votre objectif exact est, il peut y avoir des moyens plus efficaces de le faire. (StreamGeometry
est une représentation plus efficace car elle crée beaucoup moins d'objets.Mais la route par laquelle mon code arrive à cette représentation n'est pas très efficace, donc vous feriez mieux de vous arrêter avec le PathGeometry
que le tout premier extrait de code produit .Alternativement, si votre objectif est vraiment juste pour obtenir le texte du chemin, alors le PathGeometry
est également suffisant pour vos besoins.)
Dupliquer de http://stackoverflow.com/questions/5227830/convert-geometry-path-to- minilanguage-string – jpierson