You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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