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 ?
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 ?
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 ) );
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 erreurn'ayant jamais utilisé cela je ne sais pas ce que cela veux dire..La valeur n'est pas comprise dans la plage attendue.
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>Tu peux nous en dire plus sur l'erreur. sur quelle méthode est-elle déclenchée ?j'ai essayé ta solution et j'ai cette erreur "La valeur n'est pas comprise dans la plage attendue."
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)
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.
Partager