Frage

Sagen, dass ich ein Stackpanel, die mit Kopie dynamisch gefüllt werden, die Y-Position der Elemente im Innern zu ändern. Ich habe ein bestimmtes Element innerhalb dieser Stackpanel, dass ich die Y-Position (bezogen auf die Stackpanel oder aus anderen Gründen) nach dem Stackpanel finden will Kinder getan wird Neupositionierung all seine.

StackPanel sp = new StackPanel();
sp.Children.Add(someTextBlock);
sp.Children.Add(element1);
sp.Children.Add(element2);
...
someTextBlock.Text = "Lorem ipsum dolor..." // some text that pushes children of > index down
// element1 got pushed down to some unknown position based on text length
// now want to find the Y position of element1

Ich habe bemerkt, dass Methoden wie folgt aus: http: //forums.silverlight .net / Foren / p / 16787 / 55881.aspx # 55881 nicht funktionieren, da die Position zurückgeführt ist, die Position des Stackpanel und nicht das Kind Element ich bin Targeting.

War es hilfreich?

Lösung

Die in den verlinken Sie auf dem Laufenden sollte funktionieren , sofern man sie richtig nennen.

Sie müssen sie mit dem richtigen UIElement nennen - in diesem Fall auf die RootVisual mit element1 erhalten Sie die volle Position element1 geben:

var transform = element1.TransformToVisual(Application.Current.RootVisual as FrameworkElement);        
Point absolutePosition = transform.Transform(new Point(0, 0));
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top