2010-09-28 5 views
3

Salut Je suis nouveau à C# WPF. Il existe un programme WPF de diagramme en C#. Le programme peut afficher des objets et des flèches de connexion entre eux. -à-dire par exempleC# organigramme concepteur app - comment?

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

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

2 - comment créer et générer un fichier contenant les informations de relation sur les objets ci-dessus. à savoir obj1 flux de obj2

Merci de partager vos pensées

Répondre

2

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

+0

Bonjour Richard, \t Merci de répondre. Y at-il un tutoriel simple pour une telle application de concepteur de travail? – chz

3

1) Vous aurez besoin d'écrire un code de test d'impact à utiliser dans l'événement de clic de souris. Vous devez vérifier l'emplacement de chacun de vos objets à l'écran pour déterminer lequel (le cas échéant) des objets était "sous" le pointeur lorsque vous avez cliqué sur la souris. De là, vous pouvez afficher le menu contextuel approprié pour la fonctionnalité que vous souhaitez implémenter.

2) Si vous souhaitez simplement enregistrer les informations à ré-ouvrir par l'application ultérieurement, la sérialisation simple au format XML ou binaire fonctionnera correctement. Si l'intention est de rendre le contenu lisible par l'utilisateur, vous devrez écrire une exportation csv simple ou si la sortie doit être plus complexe, un sérialiseur personnalisé.

Plus d'info:

Hit-test est le terme général pour évaluer l'objet qui a été cliqué sur, par exemple, lorsque vous cliquez dans un DataGridView, la logique de test frappé peut vous dire quelle cellule/ligne/colonne était cliqué sur. De nombreuses classes Widget, y compris DataGridView, ont une méthode HitTest qui retourne un objet qui fournit cette information. Si l'outil d'organigramme utilise un dessin personnalisé pour les objets connectés, vous devrez alors utiliser les coordonnées de clic pour déterminer l'élément sur lequel l'organigramme a été cliqué.

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

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

+0

Salut cdkMoose, merci d'avoir répondu. Qu'est-ce que le hit-test, une nouvelle terminologie pour moi. Existe-t-il un didacticiel simple pour afficher ce code de test d'atteinte et vérifier l'emplacement de l'écran d'un objet? – chz

+0

Réponse mise à jour avec info. – cdkMoose

Questions connexes