Skip to content

Un contrôle quadrillé infini et entièrement customisable où l'on peut naviguer et placer des cases ou d'autres contrôles amovibles

Notifications You must be signed in to change notification settings

zonetecde/Wpf-Infinite-Canvas

Repository files navigation

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

Wpf Infinite Control

NuGet version (WpfInfiniteBoard) Workflow

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:InfiniteBoardControl x: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 image
Foregroud Couleur du quadrillage
Background Couleur du contrôle
PlacedCellBorderBrush Couleur de la bordure des cases ajoutées
PlacedCellBackground Couleur des cases ajoutées image
PlacedCellHaveBorder Est-ce que les cases ajoutées ont une bordure ?image
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

Divers

Méthode Explication
ClearBoard() Enlève les éléments placés dans le contrôle
ChangeBackgroundAndBorderColor(Brush background, Brush foreground) Change la couleur de fond et du quadrillage du contrôle

About

Un contrôle quadrillé infini et entièrement customisable où l'on peut naviguer et placer des cases ou d'autres contrôles amovibles

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages