Como desenhar facilmente gráficos em WPF? [fechado]

Preciso de desenhar gráficos que representem máquinas de estados finitos. Tentei usar o gráfico # . É fixe, mas falta-lhe algumas coisas. Não há documentação, o que torna muito difícil de usar, Eu não posso desenhar loops (arestas de um vértice para si) usando seu controle WPF personalizado e arestas de rotulagem também não é implementado. Existe alguma outra biblioteca ou forma aconselhada de desenhar gráficos em WPF?

funcionalidade Eu preciso:

  • rotulagem edge
  • ciclo (Cíclico) arestas
  • etiquetagem de vértices
  • desenhar círculos simples / duplos em torno de vértices-vértices deve ser representado como círculo (ou círculo duplo) com um rótulo dentro
Alguma ideia?

EDIT: tenho algumas propostas, pelas quais estou grato. No entanto, penso que não deixei bem claro o meu pensamento. Preciso deste tipo de gráfico: http://static.max99x.com/school/automata-editor1.png todas as ferramentas sugeridas até agora não são adequadas para isto ou talvez não saiba como aplica-os nesta situação.

Author: pmichna, 2013-05-10

6 answers

Opção 1: Disposição Automática De Grafos Da Microsoft

Livre

Http://research.microsoft.com/en-us/projects/msagl/

GitHub

Https://github.com/Microsoft/automatic-graph-layout.git

Winforms > > WPF

É WinForms, mas pode ser importado para o WPF com algumas linhas de código.

Visualizando nós e arestas com o gráfico automático Microsoft Disposição

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

Exemplos

Http://research.microsoft.com/en-us/projects/msagl/#Layouts

FAQ

Http://research.microsoft.com/en-us/projects/msagl/faq.aspx

Opção 2: QuickGraph - uma biblioteca de 100% C# grafo com Graphviz Suporte

Livre

Http://quickgraph.codeplex.com/

Esta Biblioteca é 100% C#. Não seja enganado pela linha "Suporte de Graphviz", isto significa que ele usa o código C# para importar a saída de Graphviz. Sem código C++ à vista.

Http://www.codeproject.com/Articles/5603/QuickGraph-A-C-graph-library-with-Graphviz-Sup

Tem um pacote NuGet.

Em desenvolvimento de 2003 a 2011 (8 anos!!).

Opção 3: GraphSharp

Livre

Http://graphsharp.codeplex.com/

  • depende do Gráfico Rápido(que é 100% C#).
  • Suporte async / wait (nice!).

Demo

Https://sachabarbs.wordpress.com/2010/08/31/pretty-cool-graphs-in-wpf/

Notas

Este funcionou muito bem, estava a funcionar dentro de algumas horas. Ele também suporta {[[0]}, para que cada nó possa ter qualquer aparência e sentir que você querer.

Opção 4: Graphviz4net

Livre

Http://graphviz4net.codeplex.com/

Opção 5: GoDiagram

$$$

Http://www.nwoods.com/products/godiagram/index.html

Opção 6: um controlo de desenho em árvore de grafos para WPF

Livre

Http://www.codeproject.com/Articles/29518/A-Graph-Tree-Drawing-Control-for-WPF

Não é adequado. É uma planta de árvore.

Opção 7: usar o WPF para visualizar um gráfico com dependências circulares

Livre

Http://www.codeproject.com/Articles/43776/Using-WPF-to-Visualize-a-Graph-with-Circular-Depen

Opção 8: GraphViz

Livre

Http://www.graphviz.org/Download..php

Isto não é C#, e usa código não gerido. No entanto, existem embalagens C# para ele.

[[4]] Opensourced by AT & T, see "AT&T Researchers-Inventing the Science Behind the Service", and " research home > portfolio > ferramenta": http://www.research.att.com/software_tools?fbid=NEk8_gxLLEc

Fonte

Http://www.graphviz.org/Download_source.php

Também abriram o Rserve! Opção 9: Escudos.GraphViz

Livre

Invólucro para GraphViz.

Https://github.com/timothy-shields/graphviz

Opção 10: NetworkView: um controlo personalizado WPF para visualizar e editar redes, gráficos e fluxogramas

Livre

Http://www.codeproject.com/Articles/182683/NetworkView-A-WPF-custom-control-for-visualizing-a

Esta biblioteca permite ao Utilizador criar ligações entre nós, o que é provavelmente um pouco exagerado.

Exemplo

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

É tudo MVVM.

Opção 11: Gephi - O Grafo Aberto Viz Plataforma

Livre

Ver http://gephi.github.io/

Não é uma biblioteca de gráficos WPF, mas fornece grandes exemplos de como os gráficos realmente bonitos podem parecer. O tutorial é excelente.

Opção 12: Telerik

$$$

Http://www.telerik.com/products/wpf/diagrams.aspx

Opção 13: Infragísticas

$$$

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

Opção 14: desenhador de diagramas WPF

Livre

Não tanto a ferramenta de graficação, mas mostra-lhe como mover, redimensionar e rodar objectos de qualquer tipo numa tela.

Http://www.codeproject.com/Articles/22952/WPF-Diagram-Designer-Part-1

Opção 15: Diagrama de MVVM Designer

Livre

E, alguém reimplementou isto em MVVM: não tanto a ferramenta de gráfico, mas mostra-lhe como mover, redimensionar e rodar objectos de qualquer tipo numa tela.

Http://www.codeproject.com/Articles/484616/MVVM-Diagram-Designer

Opção 16: yWorks-The Diagramming company

$$$

Https://www.yworks.com/en/products_yfiles_practicalinfo_gallery.html https://www.yworks.com/en/products_yfileswpf_about.html

Opção 17: MindFusion

$$$

Http://www.mindfusion.eu/features-wpfdiagram.html http://www.mindfusion.eu/

Opção 18: Dot2WPF

Livre

Um controlo WPF para ver gráficos de pontos.

Http://www.codeproject.com/Articles/18870/Dot-WPF-a-WPF-control-for-viewing-Dot-graphs

Opção 19: SyncFusion

$$$

Https://www.syncfusion.com/products/wpf/diagram

Opção 20: AddFlow

$$$

Https://www.componentsource.com/product/addflow-wpf-standard

Opção 21: Lassalle

$$$

Http://www.lassalle.com/

Opção 22: Visualização De Dados Dinâmicos

Http://dynamicdatadisplay.codeplex.com/

Opção 23: Nevron

$$$

Https://www.nevron.com/

Apenas para WinForms, mas pode ser importado para WPF. No entanto, cada item individual não pode ser templated, o que é uma grande vantagem das soluções WPF.

Termos De Pesquisa Do Google

  • "workflow wpf graphing"
  • "WPF graphing library"
  • "WPF state machine library"
 46
Author: Contango, 2015-07-24 10:41:32

Graphviz + Graphviz C# Wrapper são exactamente o que eu procurava.

 7
Author: pmichna, 2013-06-18 14:18:47

Eu acho que você pode facilmente implementar todos os seus requisitos com a Biblioteca GraphX para WPF. É baseado no gráfico# e tem documentos detalhados. http://panthernet.ru/en/projects-en/graphx-en

Ele suporta o labelecimento de aresta e as arestas self-looped juntamente com os templates de aresta e vértices. Se você tiver alguma dúvida que você pode fazer na seção de discussões no site.

 3
Author: Alexander Smirnov, 2013-11-14 19:44:55

Em uma questão semelhante sobre grafos bipartidos que você pode ler aqui Recebi a recomendação sobre a [[4]] NetworkView

Ele tem laços, etiquetagem de vértices, uma visualização de vértices personalizada que você pode facilmente editar para ser círculos. No entanto, penso que não tem uma rotulagem de ponta. Experimenta.

Pelo menos é um bom começo se você decidir fazê-lo por conta própria.

Você provavelmente quer dar uma olhada em o artigo do Codeproject " Visualize um gráfico com dependências circulares"

 2
Author: Mare Infinitus, 2017-05-23 12:18:01

Se isto está num cenário comercial, Você também deve dar uma olhada em yworks' yFiles.

Tem todas as características que procura e a sua característica mais notável é a capacidade de organizar automaticamente os seus diagramas. Se você tem uma máquina de Estado Maior ou até mesmo criar a máquina de estado em código, isso irá ajudá-lo claramente a organizar até mesmo grandes diagramas automaticamente. Também para os rótulos existem algoritmos automáticos de colocação de etiquetas, que encontram colocações para a etiquetas para que não se sobreponham entre si ou com outros elementos não relacionados.

Você pode ver a biblioteca ao vivo em ação neste vídeo do Youtube , mas você também pode jogar imediatamente com as demos ao vivo do Silverlight online ou apenas avaliar a biblioteca e jogar com as fontes de exemplo.

Disclaimer: eu trabalho para yWorks, mas por isso eu não represento o meu empregador.

 2
Author: Sebastian, 2013-06-18 11:59:16

Aqui estão algumas opções:

Espero que encontres o que precisas. Os que custam dinheiro também têm uma trilha livre disponível. Você pode obter alguns bons resultados com telerik ou visifire!
 1
Author: Chris, 2013-05-10 14:47:37