Pergunta

dizer que tenho um StackPanel que é preenchido dinamicamente com cópia, mudando a posição Y de elementos dentro dela. Eu tenho um elemento específico dentro desse StackPanel que eu quero encontrar a posição Y de (relativa ao StackPanel ou não) após o StackPanel é feito o reposicionamento tudo isso de crianças.

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

notei que métodos como este: http: //forums.silverlight .net / fóruns / P / 16787 / 55881.aspx # 55881 não funcionam desde a posição retornada é a posição do StackPanel e não o elemento filho Eu sou alvo.

Foi útil?

Solução

Os métodos na ligação você postou deve funcionar bem , desde que você chamá-los corretamente.

Você precisa chamá-los com o UIElement correta - neste caso, usando element1 ao RootVisual lhe dará a posição cheia de element1:

var transform = element1.TransformToVisual(Application.Current.RootVisual as FrameworkElement);        
Point absolutePosition = transform.Transform(new Point(0, 0));
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top