Comment dessiner facilement des graphiques dans WPF? [fermé]
je dois dessiner des graphiques représentant des machines d'état finis. J'ai essayé d'utiliser graphe# . C'est cool, mais il manque certaines choses. Il n'y a pas de documentation, Ce qui le rend très difficile à utiliser, Je ne peux pas dessiner de boucles (bords d'un sommet à lui-même) en utilisant son contrôle WPF personnalisé et les bords d'étiquetage n'est pas non plus mis en œuvre. Y a-t-il une autre façon conseillée de dessiner des graphiques dans la bibliothèque du FPF?
fonctionnalité dont j'ai besoin:
- étiquetage de bordure
- boucles (cycliques) arêtes
- étiquetage vertex
- dessin cercles simples/doubles autour de Sommets - les sommets doivent être représentés soit en cercle (ou double cercle) avec une étiquette à l'intérieur
des idées?
EDIT: j'ai eu quelques propositions, pour lesquelles je suis reconnaissant. Cependant, je pense que je n'ai pas été assez clair. J'ai besoin de ce genre de graphique: http://static.max99x.com/school/automata-editor1.png . Tous les outils suggérés jusqu'à présent ne sont pas appropriés pour cela ou peut-être Je ne sais pas comment les appliquer dans cette situation.
6 réponses
Option 1: Microsoft Automatique De La Présentation Graphique
Libre
http://research.microsoft.com/en-us/projects/msagl /
GitHub
https://github.com/Microsoft/automatic-graph-layout.git
Winforms > > WPF
C'est WinForms, mais il peut être importé dans WPF avec quelques lignes de code.
visualisation des noeuds et des bords avec Microsoft Automatic Graph Layout
exemples
http://research.microsoft.com/en-us/projects/msagl/#Layouts
FAQ
http://research.microsoft.com/en-us/projects/msagl/faq.aspx
Option 2: QuickGraph-une bibliothèque 100% C# graph avec le soutien de Graphviz
Libre
http://quickgraph.codeplex.com /
Cette bibliothèque est 100% C#. Ne soyez pas induit en erreur par la ligne "Graphviz Support", cela signifie qu'il utilise le code C# pour importer la sortie de Graphviz. Pas de code C++ en vue.
http://www.codeproject.com/Articles/5603/QuickGraph-A-C-graph-library-with-Graphviz-Sup
a un paquet NuGet.
en développement de 2003 à 2011 (8 ans!!).
Option 3: GraphSharp
Libre
http://graphsharp.codeplex.com /
- dépend de QuickGraph (qui est 100% C.)#
- supporte async / wait (nice!).
Démo
https://sachabarbs.wordpress.com/2010/08/31/pretty-cool-graphs-in-wpf /
Notes
celui-ci fonctionnait très bien, était opérationnel en quelques heures. Il soutient aussi DataTemplates
, de sorte que chaque noeud peut avoir n'importe quel regard et sentir que vous voulez.
Option 4: Graphviz4net
Libre
http://graphviz4net.codeplex.com /
Option 5: GoDiagram
$ $ $
http://www.nwoods.com/products/godiagram/index.html
Option 6: Un contrôle de dessin D'Arbre de graphique pour WPF
Libre
http://www.codeproject.com/Articles/29518/A-Graph-Tree-Drawing-Control-for-WPF
non adapté. C'est une arborescence.
Option 7: utiliser WPF pour visualiser un graphique avec des dépendances circulaires
Libre
http://www.codeproject.com/Articles/43776/Using-WPF-to-Visualize-a-Graph-with-Circular-Depen
Option 8: GraphViz
Libre
http://www.graphviz.org/Download..php
ce n'est pas C#, et utilise le code non-géré. Il y a C# wrappers pour cela, cependant.
Opensourced par AT&T, voir "AT&T des Chercheurs - Inventer la Science Derrière le Service", et "la recherche de la maison > porte-documents > outils logiciels": http://www.research.att.com/software_tools?fbid=NEk8_gxLLEc
Source
http://www.graphviz.org/Download_source.php
Ils ont également open source Rserve!
Option 9: Shields.GraphViz
Libre
emballage pour GraphViz.
https://github.com/timothy-shields/graphviz
Option 10: NetworkView: un contrôle personnalisé WPF pour visualisation et modification des réseaux, des graphiques et des diagrammes de flux
Libre
http://www.codeproject.com/Articles/182683/NetworkView-A-WPF-custom-control-for-visualizing-a
Cette bibliothèque permet à l'utilisateur de créer des connexions entre les nœuds, ce qui est probablement un peu exagéré.
exemple
c'est tout MVVM.
Option 11: Gephi - L'Open Graph, À Savoir La Plate-Forme
Libre
pas une bibliothèque graphique WPF, mais fournit de grands exemples de la façon dont les graphiques vraiment beaux peuvent regarder. Le tutoriel est excellent.
Option 12: Telerik
$ $ $
http://www.telerik.com/products/wpf/diagrams.aspx
Option 13: Infragistics
$ $ $
http://www.infragistics.com/samples/wpf/network-node/overview http://www.infragistics.com/samples/wpf/network-node/relationship-between-nodes http://www.infragistics.com/samples/wpf/network-node/custom-node-style
Option 14: Concepteur de diagramme de WPF
Libre
pas tellement d'outil graphique, mais il ne vous montre comment déplacer, redimensionner et faire tourner des objets de n'importe quel type sur une toile.
http://www.codeproject.com/Articles/22952/WPF-Diagram-Designer-Part-1
Option 15: Concepteur de diagramme MVVM
Libre
et, quelqu'un l'a réimplémenté dans MVVM: pas tant d'outil graphique, mais il vous montre comment déplacer, redimensionner et faire tourner des objets de n'importe quel type sur une toile.
http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer
Option 16: yWorks - La création de Diagrammes société
$ $ $
https://www.yworks.com/en/products_yfiles_practicalinfo_gallery.html https://www.yworks.com/en/products_yfileswpf_about.html
Option 17: MindFusion
$ $ $
http://www.mindfusion.eu/features-wpfdiagram.html http://www.mindfusion.eu /
Option 18: Dot2WPF
Libre
UN contrôle WPF pour la visualisation DOT graphiques.
http://www.codeproject.com/Articles/18870/Dot-WPF-a-WPF-control-for-viewing-Dot-graphs
Option 19: SyncFusion
$ $ $
https://www.syncfusion.com/products/wpf/diagram
Option 20: AddFlow
$ $ $
https://www.componentsource.com/product/addflow-wpf-standard
Option 21: Lassalle
$ $ $
Option 22: Affichage Dynamique Des Données
http://dynamicdatadisplay.codeplex.com /
Option 23: Nevron
$$$ $
seulement pour WinForms, mais peut être importé dans WPF. Toutefois, il n'est pas possible d'établir un modèle pour chaque élément, ce qui constitue un grand avantage des solutions du FPF.
Termes De Recherche Google
- workflow "wpf graphique"
- "wpf une bibliothèque graphique"
- "wpf machine d'état de la bibliothèque"
Graphviz + GraphViz C# Wrapper sont exactement ce que je cherchais.
je pense que vous pouvez facilement mettre en œuvre toutes vos exigences avec la bibliothèque GraphX pour WPF. Il est basé sur le graphique# et a des docs détaillés. http://panthernet.ru/en/projects-en/graphx-en
il soutient le marquage de bord et les bords auto-bouclés ainsi que les gabarits de bord et de sommet. Si vous avez des questions vous pouvez les poser dans la section Discussions sur le site.
dans une question similaire sur les graphiques bipartites que vous pouvez lire ici J'ai eu la recommandation sur NetworkView
il a des boucles, un étiquetage de vertex, une visualisation de vertex personnalisé que vous pouvez facilement éditer pour être des cercles. Pense qu'il n'a pas de bord de l'étiquetage. Juste lui donner un essai.
Au moins c'est un très bon début si vous décidez de le faire sur votre propre.
vous probablement vous voulez jeter un oeil sur l'article du projet de code "visualiser un graphique avec des dépendances circulaires"
si c'est dans un scénario commercial, vous devriez aussi jeter un oeil à yWorks' yFiles .
il a toutes les caractéristiques que vous recherchez et sa caractéristique la plus remarquable est la capacité d'organiser automatiquement vos diagrammes. Si vous avez une machine d'état plus grande ou même créer l'état-machine en code, cela vous aidera clairement organiser même les grands diagrammes automatiquement. Aussi pour les étiquettes il y a le placement automatique des étiquettes des algorithmes, qui trouvent des emplacements pour les étiquettes afin qu'elles ne se chevauchent pas entre elles ou avec d'autres éléments non liés.
vous pouvez voir la bibliothèque en direct en action dans cette vidéo Youtube , mais vous pouvez également jouer immédiatement avec le Silverlight live demos en ligne ou tout simplement évaluer la bibliothèque et jouer avec les sources de l'échantillon.
clause de non-responsabilité: je travaille pour yWorks, mais je ne représente donc pas mon employeur.
voici quelques options:
- VisiFire
- Silverlight Graphique des Contrôles en cours d'exécution sur WPF
- WPF Toolkit
- Telerik
j'espère que vous trouverez ce dont vous avez besoin. Ceux qui coûtent de l'argent ont également un sentier gratuit disponible. Vous pouvez obtenir de très bons résultats avec telerik ou visifire!