Git Product home page Git Product logo

wpf-infinite-canvas's Introduction

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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.