3 votes

Application de conception d'organigramme en C# - comment ?

Bonjour Je suis nouveau en C# WPF. Il y a un programme WPF d'organigramme en C#. Le programme peut afficher des objets et des flèches de connexion entre eux. ie eg

========           ========
|      |           |      |
| obj1 |  ------>  | obj2 |
========           ========

1 - Comment ajouter une fonction visuelle à chaque objet lors d'un clic droit ? Par exemple, lorsque je clique avec le bouton droit de la souris sur un objet, j'aimerais pouvoir modifier ses propriétés appartenant à une application.

2 - comment créer et générer un fichier contenant les informations sur les relations entre les objets ci-dessus, c'est-à-dire que l'objet 1 est lié à l'objet 2.

Merci de partager vos réflexions

3voto

cdkMoose Points 935

1) Vous devez écrire un code de hit-testing à utiliser dans l'événement de clic de souris. Vous devez vérifier l'emplacement à l'écran de chacun de vos objets afin de déterminer lequel (le cas échéant) des objets se trouvait "sous" le pointeur lorsque la souris a été cliquée. À partir de là, vous pouvez afficher le menu contextuel approprié pour la fonctionnalité que vous souhaitez mettre en œuvre.

2) Si vous souhaitez simplement sauvegarder les informations pour les rouvrir plus tard dans l'application, une simple sérialisation en XML ou en binaire fonctionnera parfaitement. Si l'intention est de rendre le contenu lisible par l'utilisateur, vous devrez écrire une simple exportation csv ou, si la sortie doit être plus complexe, un sérialiseur personnalisé.

Plus d'informations :

Le hit-testing est le terme général pour évaluer l'objet sur lequel on a cliqué. Par exemple, lorsque vous cliquez dans une DataGridView, la logique du hit-testing peut vous dire sur quelle cellule/ligne/colonne vous avez cliqué. De nombreuses classes de widgets, y compris DataGridView, possèdent une méthode HitTest qui renvoie un objet fournissant cette information. Si l'outil d'organigramme utilise un dessin personnalisé pour les objets connectés, vous devrez alors utiliser les coordonnées du clic pour déterminer sur quel élément de l'organigramme vous avez cliqué.

http://msdn.microsoft.com/en-us/library/system.Windows.forms.datagridview.hittest.aspx documente la méthode HitTest pour le DataGridView.

http://www.codeproject.com/KB/list/CSharpHitTest.aspx est un exemple de programme sur CodeProject qui fait de la logique de test dans une ListView.

2voto

Richard Hein Points 6697

1 - Gérer les événements de clic de souris pour les objets, et faire tout ce que vous avez à faire. 2 - Sérialisez le graphe d'objets au format XML ou binaire.

1voto

akjoshi Points 6711

Je ne suis pas sûr de la façon dont votre application fonctionne et des contrôles que vous avez utilisés, mais je vous suggère de consulter les articles suivants, qui mettent en œuvre des conceptions avec les fonctionnalités que vous avez mentionnées.

http://flowpad.codeplex.com/

Concepteur de diagrammes WPF

http://simulo.codeplex.com/

0voto

Jaye Points 142

Bibliothèque simple de Git https://gridwizard.wordpress.com/2015/03/25/simple-c-library-to-render-graph-to-flowchart

Il aide à générer un organigramme en calculant d'abord Node.x/y et la taille de Canvas (graphique d'objet donné), puis en effectuant le rendu en HTML5. Vous pouvez adapter le rendu du code à WPF (en ajoutant simplement un autre rendu - en empruntant le code de leur rendu HTML5).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X