Un contrôle quadrillé infini et entièrement customisable où l'on peut naviguer et placer des cases ou d'autres contrôles amovibles
C#
Wpf Infinite Canvas
Un contrôle quadrillé infini et entièrement customisable où l'on peut naviguer et placer des cases ou d'autres contrôles amovibles
Implémentation :
Dans le code WPF de votre fenêtre :
xmlns:InfiniteBoard="clr-namespace:WpfInfiniteBoard;assembly=WpfInfiniteBoard"
d:Width="1920" d:Height="1080" <!-- Important à précisé, sinon votre fenêtre fera une taille immense dans le designer --><InfiniteBoard:InfiniteBoardControlx:Name="InfiniteBoard" />
Quelques propiétés et évènement à connaitre :
Propriété
Explication
AllowUserToMoveAround
L'utilisateur peut-il naviguer dans le contrôle ? (clique sur la molette de la souris)
AllowUserToZoom
L'utilisateur peut-il zoomer dans le contrôle ?
AllowUserToPlaceCells
L'utilisateur peut-il placé des cases avec un clique gauche et en supprimer avec un clique droit ?
CellSize
Taille des cases
ShowQuartering
Afficher le quadrillage ?
BorderThickness
Épaisseur du quadrillage
Foregroud
Couleur du quadrillage
Background
Couleur du contrôle
PlacedCellBorderBrush
Couleur de la bordure des cases ajoutées
PlacedCellBackground
Couleur des cases ajoutées
PlacedCellHaveBorder
Est-ce que les cases ajoutées ont une bordure ?
CellAdded (sender, e)
Évènement se délanchant lorsqu'une case est ajouté, e étant la nouvelle case (de type Rectangle)
Quelques méthode à connaitre :
Pour les cases :
Méthode
Explication
InfiniteBoard.PlaceCell(int xFromOrigin, int yFromOrigin)
Place une cellule aux coordonnées par apport à la case du centre du contrôle de la partie affiché lorsque le contrôle est initialisé.
InfiniteBoard.EraseCell(int xFromOrigin, int yFromOrigin)
Enlève une cellule aux coordonnées par apport à la case du centre du contrôle de la partie affiché lorsque le contrôle est initialisé.
DoesAnyCellsExistHere(int xFromOrigin, int yFromOrigin) return bool
Est-ce que une case est placée à ces coordonnées ?
GetAllColouredCell()
Retourne un dictionnaire de toutes les cases placés
Pour les contrôles :
Méthode
Explication
PlaceControl(positionFromOrigin)
Ajoute un contrôle aux coordonnées donné pouvant être bouger à l'intérieur de l'InfiniteBoard (réglable)
ChangeControlPosition(control, newPos)
Change les coordonnées du contrôle donné en de nouvelle
GetControlPosition(control)
Retourne les coordonnées du contrôle donné
EraseControlFromCoordinate(pos)
Efface le contrôle aux cordonnées X et Y données
EraseControl(control)
Supprime le contrôle passé en paramètre
GetAllControl()
Retourne une liste de tous les contrôles placés avec leur position