Ich habe eine StackPanel
, die N-Anzahl von Kindern hat. Ich möchte die x, y Koordinaten der Kinder relativ zum Elternteil StackPanel
erhalten.Wie ermittle ich die Koordinaten eines Artikels innerhalb eines Stackpanels?
Die Kinder in der StackPanel
sind horizontal zentriert, also wenn die StackPanel
Größen die Kinder zentriert werden. Hier ist, was ich tue die TopLeft Ecke des Kindes Artikel in Bezug auf die StackPanel
zu erhalten:
Dim parent = VisualTreeHelper.GetParent(childItem)
childItem.TranslatePoint(VisualTreeHelper.GetDescendantBounds(childItem).TopLeft, parent)
Sagen wir im ersten Layout der Punkt es gibt mir zurück ist (20,0). Jetzt ändert sich das Layout und die StackPanel
erweitert sich, aber die Kinder bleiben zentriert. Ich würde erwarten, dass diese Methode mir jetzt etwas zurück gibt wie (150, 0), aber es gibt mir immer noch (20,0). Visuell kann ich sehen, dass die Elemente in der Mitte der StackPanel
sind, aber es gibt mir immer noch die Anfangskoordinaten. Was mache ich falsch?
Ich habe den Code geändert, um ihn verständlicher zu machen (hoffe ich). Ich erhalte den übergeordneten Container und übersetze dann die Grenzen des Kindes in den übergeordneten Container – Micah