假设我有一个 StackPanel,它会动态填充副本,从而更改其中元素的 Y 位置。我在该 StackPanel 中有一个特定元素,我想在 StackPanel 重新定位其所有子元素后找到该元素的 Y 位置(相对于 StackPanel 或其他)。
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
我注意到这样的方法:http://forums.silverlight.net/forums/p/16787/55881.aspx#55881不起作用,因为返回的位置是 StackPanel 的位置,而不是我要定位的子元素。
中的方法您发布的链接如果您正确调用它们,应该可以正常工作。
您需要使用正确的 UIElement 来调用它们 - 在这种情况下,使用 element1 到 RootVisual 将为您提供完整的位置element1
:
var transform = element1.TransformToVisual(Application.Current.RootVisual as FrameworkElement);
Point absolutePosition = transform.Transform(new Point(0, 0));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)