Comment créer et connecter des boutons / contrôles utilisateur personnalisés avec des lignes à l'aide de formulaires Windows
Je suis en train de créer des boutons personnalisés ou des contrôles utilisateur, comme indiqué dans le projet de GUI. La fonctionnalité devrait être comme suit:
Les graphiques ou les configurations sont créés graphiquement.
Les contrôles peuvent être déplacées d'une barre d'outils ou inséré par le bouton droit de la souris/déroulante
En les faisant glisser à partir d'un contrôle à l'autre, ils doivent être reliés par des lignes
Une bascule devrait décaler la vue des contrôles avec des options à un simple point de vue
GUI vue - des contrôles de avec les options:
GUI vue réduite:
Fonctionnalités dans Windows forms puis-je utiliser pour créer les lignes de connexion ?
Si ils sont créés à l'aide de la fonctionnalité de tracer des lignes, comment puis-je faire en sorte que les contrôles composant logiciel enfichable à la ligne? ..
Je suis à la programmation en C# avec Visual Studio 2010 Express.
source d'informationauteur Eirik
Vous devez vous connecter pour publier un commentaire.
Ok. C'est une légère modification de l'exemple que j'ai créé pour Une exigence similaire
Mon intention est de montrer que winforms n'est plus une option pour quelqu'un qui a besoin d'un sérieux de l'INTERFACE utilisateur.
L'échantillon initial a été créé dans les 3 heures-homme.
Vous pourriez être surpris de savoir que le conteneur qui contient tous ces éléments (les deux nœuds et les connecteurs) est en fait une
ListBox
.Choses à signaler:
Thumb
de contrôle, qui permet en cliquant et en faisant glisser.int
etdouble
propriétés qui peuvent être chargés/enregistré à partir d'une base ou d'une autre source de données.Edit:
Deuxième version, cette fois beaucoup plus semblable à l'original de votre capture d'écran:
SnapSpot
dans l'équation. Ce sont les petits rouge demi-cercles que vous voyez autour de nœuds, qui sont en fait de ce que l'Connector
s sont liés à l'.J'ai aussi changé la
Connector
DataTemplate pour l'utilisation d'unQuadraticBezierSegment
basé surCela permet de lignes courbes, à être utilisés comme connecteurs, et pas seulement les lignes droites.
Thumb
qui apparaît lorsque vous sélectionnez (cliquez) sur unConnector
(visible dans la capture d'écran) qui vous permettra de déplacer leMidPoint
de la courbe.TextBoxes
sous "Milieu" dans le panneau de gauche.CheckBox
permet de basculer entre le plein et de petites boîtes, comme illustré dans la capture d'écran.SnapSpot
s ont unOffsetX
OffsetY
entre 0 et 1 qui correspond à leur position par rapport au parentNode
. Ce ne sont pas limités à 4 et pourrait en fait être n'importe quel nombre d'entre eux parNode
.ComboBoxes
etButtons
ont pas de fonctionnalité, mais c'est juste une question de la création de l'propriétés pertinentes et Les commandes dans leNode
classe et les lier à qui.Edit2:
Mis à jour le lien de téléchargement avec une bien belle version.
Modifier 10/16/2014: comme beaucoup de gens semblent intéressés par ce sujet, j'ai téléchargé la source de GitHub.
Je devine que ce est un graphique type de problème. Les nœuds sont les chambres et les arêtes sont les lignes qui relient les chambres. Vous pouvez introduire une autre classe (disons de la classe de Connexion) qui décrit la manière dont les nœuds sont connectés vers les bords. Par exemple, votre salle se connecte à une chambre à coucher, pas nécessairement à l'aide d'une ligne droite. Les Graphismes.DrawBezier vous permet de dessiner des lignes courbes, mais nécessite un tableau de points. C'est là que la classe de Connexion. Du code peut aider...
C'est l'approche de base, peut-être pas le meilleur, mais pourrait servir de point de départ.