IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

[C#] UserControl en WPF - création d'un damier


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut [C#] UserControl en WPF - création d'un damier
    Bonsoir tout le monde.
    bon voilà, il y a un an, j'ai créé un damier vite fait avec winform, et c'était bien lourd comme méthode !
    Aujourd'hui, j'aimerais créer un UserControl en WPF ! un damier de jeu d'échec par exemple, en m'inspirant de cette page web.
    Seulement je ne veux pas créer un élément de type "window", mais un véritable composant de type Rectangle par exemple, avec des méthodes diverses et variées me permettant de manipuler mon damier au final.

    Pourriez-vous me mettre sur la voix svp ? c'est ma première appli en WPF, alors je patoge ^^

    Merci.

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    je serais tenté de dire qu'un usercontrol n'est pas obligatoire, tu peux faire une classe Case, tu en créés 64 que tu mets dans une collection, et tu donnes la collection à un listbox
    tu précises au listbox qu'il doit utiliser un canvas et lire les positions des cases sur des propriétés de l'objet
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    peux-tu me donner un petit exemple de code stp ?
    j'aimerais avoir la possibilité d'utiliser une fonction add() et remove() sur chacun des cases de mon échiquier si possible.
    ta solution m'intéresse en tout cas.
    merci

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Par défaut
    je précise que j'aimerais changer la couleur d'une case sans regénérer tout le damier, mais simplement en faisant une mise à jour de la case concerner.

    j'aimerais quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ma_case[x, y].couleur = rouge;
    voila

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    j'ai pas vraiment d'exemple de code, il "suffit" de comprendre comment utiliser wpf, car ca ne se code pas du tout comme un langage conventionnel

    mais avec ce que j'ai dit et du binding, changer la propriété color de la classe case fera automatiquement changer la couleur à l'écran

    ce que j'ai dit se base sur les fondements de wpf, mais je pense que ca ne s'invente pas, il faut pas mal tester toutes les fonctionnalités et une fois assimiler les mixer
    et ca doit pas être lourd en ligne de code en plus
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre éprouvé
    Inscrit en
    Juin 2008
    Messages
    162
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 162
    Par défaut
    Si tu veux juste créer la visualisation du damier tu peux le faire directement avec un tile brush comme ceci:

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <Rectangle Margin="100" SnapsToDevicePixels="True" >
                <Rectangle.Fill>
                    <DrawingBrush ViewportUnits="RelativeToBoundingBox" Viewport="0,0,0.25,0.25" TileMode="Tile">
                        <DrawingBrush.Drawing>
                            <DrawingGroup>
                                <GeometryDrawing Brush="Black">
                                    <GeometryDrawing.Geometry>
                                        <GeometryGroup>
                                            <RectangleGeometry Rect="0,0,10,10" />
                                        </GeometryGroup>
                                    </GeometryDrawing.Geometry>
                                </GeometryDrawing>
                                <GeometryDrawing Brush="Red">
                                    <GeometryDrawing.Geometry>
                                        <GeometryGroup>
                                            <RectangleGeometry Rect="10,10,10,10"/>
                                        </GeometryGroup>
                                    </GeometryDrawing.Geometry>
                                </GeometryDrawing>
                            </DrawingGroup>
                        </DrawingBrush.Drawing>
                    </DrawingBrush>
                </Rectangle.Fill>
            </Rectangle>

    Pour faire un control paramétrable il suffit d'inclure ce code dans un UserControl/CustomControl et ensuite jouer sur les paramétrés du brush.

    Cependant cette méthode ne convient pas si tu veux rajouter les interactions sur les cases.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Binding UserControl StackPanel WPF
    Par sarah2810 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 12/09/2013, 19h58
  2. [WPF] Création Treeview et sauvegarde en BDD
    Par playmobil-62 dans le forum C#
    Réponses: 2
    Dernier message: 02/04/2013, 18h24
  3. Enumerer les controles contenus dans un UserControl en WPF
    Par elfdav dans le forum Windows Presentation Foundation
    Réponses: 2
    Dernier message: 28/05/2010, 18h46
  4. localisation d'un usercontrol en wpf
    Par titou45 dans le forum Windows Forms
    Réponses: 0
    Dernier message: 21/02/2010, 13h16
  5. probleme avec les usercontrol en WPF
    Par tix116 dans le forum C#
    Réponses: 4
    Dernier message: 06/04/2009, 20h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo