Je me demandais s'il existait un outil pour convertir des données de chemin telles que "M 0 0 l 10 10" en code de ligne/segment de courbe équivalent.WPF, convertir des objets Path.DataProperty en segments
Actuellement, je suis en utilisant:
string pathXaml = "<Path xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" xmlns:x=\"http://schemas.microsoft.com/winfx/2006/xaml\" Data=\"M 0 0 l 10 10\"/>";
Path path = (Path)System.Windows.Markup.XamlReader.Load(pathXaml);
Il me semble que l'appel XamlParser est beaucoup plus lent que de créer explicitement les segments de ligne. Cependant convertir beaucoup de chemins à la main est très fastidieux.
Salut itowlson, il semble que l'auteur de la question utilise XamlReader qui est en effet lent pour ce genre d'opération. Au lieu de cela, vous pouvez lui suggérer d'utiliser la méthode * Geometry.Parse() *. Ce qui est plus rapide que XamlReader. BTW, dans votre scénario, vous pouvez également omettre les convertisseurs, et utilisez * PathFigureCollection.Parse() *:) ... Je pense toujours que votre réponse est correcte. – Anvaka
Anvaka: garçon, mon visage est rouge. Je n'avais même pas réalisé que ces méthodes étaient publiques - je pensais que la seule façon de les atteindre était via le convertisseur. Je vais mettre à jour - merci beaucoup! (En ce qui concerne XamlReader vs l'analyse des chaînes, il semble qu'il ait édité la question pendant que j'écrivais - dans la version originale il définissait directement la propriété Path à partir d'une chaîne de code.) – itowlson
Merci pour toutes les réponses, ouais j'ai édité la question, le code dans mon programme est légèrement différent mais l'idée est la même. Je vais mettre en œuvre l'optimisation suggérée. – user275587