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.

23
demandé sur pmichna 2013-05-10 14:03:51

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

http://www.codeguru.com/csharp/.net/net_wpf/article.php/c16963/Visualizing-Nodes-and-Edges-with-Microsoft-Automatic-Graph-Layout.htm

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

https://channel9.msdn.com/coding4fun/blog/Noodling-Network-Nodes-Diagraming-with-the-NetworkView-custom-WPF-control

c'est tout MVVM.

Option 11: Gephi - L'Open Graph, À Savoir La Plate-Forme

Libre

voir http://gephi.github.io /

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

$ $ $

http://www.lassalle.com /

Option 22: Affichage Dynamique Des Données

http://dynamicdatadisplay.codeplex.com /

Option 23: Nevron

$$$ $

https://www.nevron.com /

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"
46
répondu Contango 2015-07-24 10:41:32

Graphviz + GraphViz C# Wrapper sont exactement ce que je cherchais.

7
répondu pmichna 2013-06-18 14:18:47

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.

3
répondu Alexander Smirnov 2013-11-14 19:44:55

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"

2
répondu Mare Infinitus 2017-05-23 12:18:01

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.

2
répondu Sebastian 2013-06-18 11:59:16

voici quelques options:

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!

1
répondu Chris 2013-05-10 14:47:37