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

Silverlight Discussion :

récupére la position d'une grid


Sujet :

Silverlight

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut récupére la position d'une grid
    bonjour

    je souhaite dans mon code behind récupérer les valeurs X et Y de la position d'une grid dans mon xaml. Comment faire ?

  2. #2
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    J'imagine que si tu poses cette question c'est que ton Grid n'est pas positionné sur un Canvas

    Si tu veux obtenir les coordonnées de ton Grid relativement à ton LayoutRoot tu peux essayer ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    GeneralTransform g = this.TonGrid.TransformToVisual( this.LayoutRoot);
    Point p = g.Transform( new Point( 0, 0 ) );

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut
    non justement, dans ma page j'ai une succession de stack panel -> 1 général orienté de manière verticale, et dans chaque élément d'autres stack panel.. bref au final j'affiche plein de résultats dans des itemsControl dans des belles grid personnalisées. Maintenant le but pour moi est de tracer des lignes entre ces grid, c'est pour ça que je souhaite récupérer ces valeurs.. je pensais trouver rapidement mais je suis étonné de voir qu'on ne puisse pas récupérer simplement les coordonnées actuelles de n'importe quel élément..

    j'ai essayé ta solution et j'ai cette erreur
    La valeur n'est pas comprise dans la plage attendue.
    n'ayant jamais utilisé cela je ne sais pas ce que cela veux dire..

  4. #4
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Bizzare, Cette methode fonctionne très bien chez moi avec cette exemple de base :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <Grid x:Name="LayoutRoot">
      <Grid x:Name="TonGrid" Margin="50"/>
    </Grid>
    j'ai essayé ta solution et j'ai cette erreur "La valeur n'est pas comprise dans la plage attendue."
    Tu peux nous en dire plus sur l'erreur. sur quelle méthode est-elle déclenchée ?

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut
    c'est bizare ça j'ai ajouté une grid directement dans le layoutRoot, je l'ai centré, et pas moyen de passer la méthode. j'ai toujours la même erreur. En voici un peut plus si ça peut t'aider:

    à MS.Internal.XcpImports.MethodEx(IntPtr ptr, String name, CValue[] cvData)
    à MS.Internal.XcpImports.MethodPack(IntPtr objectPtr, String methodName, Object[] rawData)
    à MS.Internal.XcpImports.UIElement_TransformToVisual(UIElement element, UIElement visual)
    à System.Windows.UIElement.TransformToVisual(UIElement visual)
    à MonProgramme.MainPage.rafraichir(String nomPersonne)

  6. #6
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Le faite de centrer le grid fonctionne chez moi aussi.

    Essaye de ne pas lancer la méthode de récupération de la position dans ta méthode rafraichir mais plutot dans l'evenement Loaded dans un premier temps.

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut
    bizare.. avec ce même code dans le constructeur j'ai toujours la même erreur..

    j'ai palié au problème en mettant en place des règles de calcul et maintenant j'ai quelque chose qui fonctionne bien .. je sais que ça n'est pas le sujet de la discussion mais.. comment supprimer toute les lignes dessinées dans mon layoutRoot lors d'un rafraichissement de mes valeurs ?

    j'ai fait comme ceci pour mes traits:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Line line = new Line();
                line.X1 = 100;
                line.Y1 = 100;
                line.X2 = 200;
                line.Y2 = 200;
                line.Stroke = Util.GetColorFromHex("#ff000000");
                line.Opacity = 100;
                LayoutRoot.Children.Add(line);
    merci par avance

  8. #8
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Stocke toutes tes lignes dans une liste dès que tu en ajoutes une dans le LayoutRoot. Si tu veux les détruire rapidement, tu n'as plus qu'a parcourir ta liste de ligne (plus rapide que de parcourir les enfants de LayoutRoot et d'en déterminer le type) :

    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
     
     
    List<Line> lines = new List<Line>();
     
    // ajouter des lignes
    Line line = new Line();
    ...
     
    lines.Add( line);
    LayoutRoot.Children.Add(line);
    ...
     
    // destruction de toutes les lignes ajoutées
    foreach( Line line in lines )
    {
      LayoutRoot.Children.Remove(line);
    }

  9. #9
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut
    ok merci beaucoup ça marche très bien comme ça
    finalement de manière "détournée" ce que je voulais faire marche.. merci !!

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

Discussions similaires

  1. Position d'une ScrollBar dans un TRichEdit (ou TMemo)
    Par Troll dans le forum C++Builder
    Réponses: 9
    Dernier message: 24/02/2005, 15h18
  2. Récupéré l'identifiant d'une certaine ligne
    Par Trunks dans le forum Langage SQL
    Réponses: 6
    Dernier message: 25/01/2005, 01h08
  3. Récuperer la taille & position d'une fenêtre
    Par TheDarkLewis dans le forum Windows
    Réponses: 3
    Dernier message: 20/09/2004, 22h15
  4. Position d'une balise dans un document externe
    Par haypo dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 18/07/2003, 02h56
  5. [VB6] Position d'une MDIchild dans un MDI
    Par pepper dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 29/01/2003, 14h02

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