2010-10-24 5 views
2

dans Silverlight 3 pour Mobile, comment puis-je obtenir les points de figure d'un Chemin, pour que je puisse finalement obtenir ses points (coordonnées X, Y)? D'après ce que j'ai lu, il semble que les structures arborescentes de PathGeometry ne soient pas stockées dans Silverlight 3 for Mobile (je le fais pour WP7) ... Y at-il un autre moyen de contourner cela? Tout ce que je veux, c'est la collection de Points du Chemin. Ci-dessous le code que j'ai écrit pour analyser les segments du chemin pour obtenir les points, MAIS, la collection de figures est toujours vide, donc je ne peux même pas atteindre les segments. J'ai également essayé d'utiliser XamlReader.load pour lire dans le chemin XAML, mais cela a les mêmes résultats, une collection de chiffres vides. J'ai également collé le chemin XAML ci-dessous.Silverlight 3 Mobile (WP7) - Problème PathGeometry, aidez s'il vous plaît!

Merci pour la lecture, et nous espérons que quelqu'un peut me diriger dans la bonne direction :) Tim

private List<Point> getShapePathPoints(Path shapePath) 
    { 
     List<Point> shapePathPoints = new List<Point>(); 

     PathGeometry pathGeometry = (PathGeometry)shapePath.Data; 
     foreach (PathFigure pathFigure in pathGeometry.Figures) 
     { 

      foreach (PolyLineSegment segment in pathFigure.Segments) 
      { 
       foreach (Point point in segment.Points) 
       { 
        shapePathPoints.Add(point); 
       } 
      } 
     } 

     return shapePathPoints; 
    } 

Répondre

1

figures et segements sont un moyen de programmation de haut niveau pour définir un chemin. Ils ne représentent pas le stockage interne utilisé par le chemin lui-même car, en général, ils ne sont pas efficaces en mémoire.

Le langage de mini-chemin utilisé pour définir la grande majorité des chemins est une forme de sérialisation pour la représentation interne réelle d'un chemin. Lorsque de tels chemins sont créés, les ensembles de figures programmatiques ne sont pas générés.

Cela aurait été une bonne addition à l'API d'avoir une méthode qui pourrait inverser l'ingénierie d'un mini chemin d'accès à un ensemble de chiffres, mais comme d'habitude, il est bon de comparer les coûts.

Vos options sont les suivantes: -

  • utilisation Xaml qui comprend les figures et les instances sectorielles plutôt que la mini-chemin langue
  • utilisation XmlReader ou XDocument pour charger les chemins contenant Xaml, trouver le chemin d'intérêt, Parse le mini-langage vous-même.
+0

Merci, cela confirme ce que j'ai vu et lu. Comme vous pouvez le constater, je suis nouveau sur Silverlight et XAML ... Je suis un développeur ASP.NET, Service et SQL :) Mais je commence à m'y habituer avec ce petit projet. Je suis allé une autre route, en créant mon propre algorithme de chemin de frontière. XmlReader ne fonctionne pas avec les chemins créés dans le langage mini-chemin, je parie que cela fonctionnera pour Path's avec des figures ajoutées manuellement comme vous le mentionnez. – Tim

Questions connexes