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 :

BackGround + grid.row/column x variable


Sujet :

Windows Presentation Foundation

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 55
    Par défaut BackGround + grid.row/column x variable
    Bonjour,

    j'ai un petit soucis de conception en wpf qui est:

    Je possède une variable de type int qui contient un nombre (lol).

    Ce nombre définit le nombre de table-image qui devra figuré dans le logiciel.

    Exemple:

    si la valeur est à 3, alors il y aura 3 table de ping pong en background dans 3 grid, avec 3x une textbox, 3x 3bouton, etc. mais la table de ping pong est bel et bien une image. si je change la valeur pour 4, une nouvelle tbale de ping pong apparait avec ces textbox et propriété.

    Je sais pas si je suis claire, alors je vous demande deja la une solution, sinon j'essaierai d'etre plus compréhensif.

    Je pense que le code c# doit être du style
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    for (int i=0; i < nbTable; i++)
    { 
         //Nouvelle grid xaml avec background
         //Nouveau label
        //Nouveau textbox
        //Nouveau bouton 1 2 3 
    }

    Je pêche sur la conception du code en commentaire ici

    Meilleures salutation

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 34
    Par défaut
    yo!

    testes et completes ca

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
            private static int nbTablesPingPong=0;
            private void button1_Click(object sender, RoutedEventArgs e)
            {
                nbTablesPingPong++;
                Rectangle table;
                for(int i=0;i<nbTablesPingPong;i++)
                {
                    table = new Rectangle();
                    table.Height = 30; table.Width = 50;
                    table.Margin = new Thickness(i * 150, 0, 0, 0);
                    table.Fill = Brushes.Green;
                    table.Visibility = Visibility.Visible;
                    maGrid.Children.Add(table);
                }
            }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 55
    Par défaut
    Salut,

    Merci de ton aide, actuellement mon code est le suivant:

    Code : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Timers;
    using System.Configuration;
    using System.Drawing;
    using System.Drawing.Drawing2D;
     
    namespace BillardCounter
    {
        class Billard
        {
            private static int nbTablesBillard = int.Parse(ConfigurationManager.AppSettings["nbTable"]);
     
            public void createTable()
            {
                Rectangle table;
                for (int i = 0; i < nbTablesBillard; i++)
                {
                    table = new Rectangle();
                    table.Height = 30; table.Width = 50;
                    table.Margin = new Thickness(i * 150, 0, 0, 0);
                    table.Fill = Brushes.Green;
                    table.Visibility = Visibility.Visible;
                    maGrid.Children.Add(table);
                }
     
            }
     
     
        }
    }
    Il ne reconnait pas les mots clef Margin, Thickness, Fill et visibility.

    Il y a aussi maGrid, je pense que c'est la grid XAML? car comme tu vois la je suis dans une class spécial.

    Le code c# de windows.xaml.cs appelle la class:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Billard bd = new Billard();
            public Window1()
            {
                InitializeComponent();
                float prixHeure = float.Parse(ConfigurationManager.AppSettings["prixHeure"]);
     
                bd.createTable();
            }
    Meilleures salutations

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Tu dois référencer les Assembly suivantes dans ton projet :

    Margin, Thickness, Fill :
    Assembly: PresentationFramework (in PresentationFramework.dll)
    Visibility :
    Assembly: PresentationCore (in PresentationCore.dll)



    et mettre les using correspondants :

    Margin, Thickness, Visibility :
    Namespace: System.Windows
    Fill :
    Namespace: System.Windows.Shapes



    Sinon, ne voyant pas le using System.Windows.Shapes, le Rectangle doit être de type System.Drawing... Ça risque de poser problème

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 55
    Par défaut
    Salut,

    Voici mon code:

    Code : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Timers;
    using System.Configuration;
    using System.Drawing;
    using System.Drawing.Drawing2D;
    using System.Windows;
    using System.Windows.Shapes;
     
    namespace BillardCounter
    {
        class Billard
        {
            private static int nbTablesBillard = int.Parse(ConfigurationManager.AppSettings["nbTable"]);
     
            public void createTable()
            {
                System.Drawing.Rectangle table;
                for (int i = 0; i < nbTablesBillard; i++)
                {
                    table = new System.Drawing.Rectangle();
                    table.Height = 30; table.Width = 50;
                    table.Margin = new Thickness(i * 150, 0, 0, 0);
                    table.Fill = Brushes.Green;
                    table.Visibility = Visibility.Visible;
                    maGrid.Children.Add(table);
                }
     
            }
     
     
        }
    }
    Margin, Fill, Visibility me donne les erreurs suivante:
    Erreur 1 'System.Drawing.Rectangle' ne contient pas une définition pour 'Margin' et aucune méthode d'extension 'Margin' acceptant un premier argument de type 'System.Drawing.Rectangle' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante*?)
    Par ailleurs, je suis dans une nouvelle classe, donc comment accéder a maGrid xaml?

    Meilleures salutations

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Le code fournit par Zenith parlait de System.Windows.Shapes.Rectangle et non de System.Drawing.Rectangle

    d'où la remarque sur mon dernier post

    Citation Envoyé par cKmel
    Par ailleurs, je suis dans une nouvelle classe, donc comment accéder a maGrid xaml?
    Tu pourrais la donner en paramètre à ta fonction.

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 55
    Par défaut
    Code : 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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading;
    using System.Timers;
    using System.Configuration;
    using System.Drawing;
    using System.Drawing.Drawing2D;
    using System.Windows;
    using System.Windows.Shapes;
     
    namespace BillardCounter
    {
        class Billard
        {
            private static int nbTablesBillard = int.Parse(ConfigurationManager.AppSettings["nbTable"]);
     
            public void createTable()
            {
                System.Windows.Shapes.Rectangle table;
                for (int i = 0; i < nbTablesBillard; i++)
                {
                    table = new System.Windows.Shapes.Rectangle();
                    table.Height = 30; table.Width = 50;
                    table.Margin = new Thickness(i * 150, 0, 0, 0);
                    table.Fill = System.Windows.Media.Brushes.Green;
                    table.Visibility = Visibility.Visible;
                    maGrid.Children.Add(table);
                }
     
            }
     
        }
    }
    Voilà donc le code

    pour le passé en paramètre, j'utilise le mot clé var maGrid dans la fonction de ce code meme et this.maGrid lors de l'appel de la fonction je suppose?

    Merci encore et meilleures salutations

  8. #8
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    j'ai pas vraiment compris ta dernière question, mais bon pour passer en paramètre maGrid à ta fonction, tu dois faire :
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public void createTable(Grid maGrid)
    {
      ...
    }

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 55
    Par défaut
    Erreur 1 Le type ou le nom d'espace de noms 'Grid' est introuvable (une directive using ou une référence d'assembly est-elle manquante*?)
    :p

  10. #10
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Tu as les bon using d'ajoutés ?

  11. #11
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Essaie d'utiliser la doc msdn pour savoir quel assembly et namespace ajouter lorsque tu veux utiliser un contrôle ou une fonctionnalité :
    http://msdn.microsoft.com/en-us/libr....controls.aspx

    Les problèmes que tu as rencontré jusqu'à présent étaient similaires

Discussions similaires

  1. [XL-2003] Row Column VBA
    Par ines0091 dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 03/02/2011, 10h05
  2. Alternative à Grid.Row et Grid.Column ?
    Par zax-tfh dans le forum Silverlight
    Réponses: 5
    Dernier message: 07/05/2010, 02h18
  3. Question bête : 4 zones précises (Grid.row ?)
    Par vincentDec dans le forum Silverlight
    Réponses: 3
    Dernier message: 25/04/2010, 14h05
  4. source grid et column span
    Par fraiza dans le forum Windows Forms
    Réponses: 0
    Dernier message: 30/03/2009, 12h47
  5. [PPC][C#][Sql CE] erreur "no data exists for the row/column"
    Par Jessika dans le forum Windows Forms
    Réponses: 6
    Dernier message: 12/04/2007, 12h13

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