J'ai un StackPanel
qui a un nombre N d'enfants. Je veux obtenir les coordonnées x, y des enfants par rapport au parent StackPanel
.Comment déterminer les coordonnées d'un élément dans un panneau de pile?
Les enfants du StackPanel
sont centrés horizontalement. Lorsque le StackPanel
est redimensionné, les enfants sont centrés. Voici ce que je fais pour obtenir le coin supérieur gauche de l'enfant par rapport à l'élément StackPanel
:
Dim parent = VisualTreeHelper.GetParent(childItem)
childItem.TranslatePoint(VisualTreeHelper.GetDescendantBounds(childItem).TopLeft, parent)
Disons que dans la mise en page initiale du point il me donne retour est (20,0). Maintenant, la disposition change et le StackPanel
s'élargit, mais les enfants restent centrés. Je m'attendrais maintenant à ce que cette méthode me redonne quelque chose comme (150, 0) mais ça me donne toujours (20,0). Visuellement je peux voir les articles sont au centre du StackPanel
, mais ça me donne toujours les coordonnées initiales. Qu'est-ce que je fais mal?
J'ai changé le code pour le rendre plus inconfortable (j'espère). Je reçois le conteneur parent et traduit ensuite les limites de l'enfant à son parent – Micah