如何在WP7的Silverlight中找到控件的屏幕位置?

5

在WP7的Silverlight中,如何找到控件的屏幕位置?

非常感谢您的任何建议。

1个回答

10

如果你知道它的定位方式(例如在Canvas中),可能有更合适的方法来处理,但通常情况下,你可以使用UIElement.TransformToVisual在控件和全局坐标系之间进行转换:

var transform = myControl.TransformToVisual(Application.Current.RootVisual)
var offset = transform.Transform(new Point(0,0))

在尝试此操作之前,请确保控件已经进行了布局,如果太早执行此操作,则错误消息通常没有帮助。

(MSDN建议该方法适用于WP7,我没有安装SDK进行测试)


我尝试过的所有情况都是正确的,除了键盘显示时。有没有办法在键盘进入和退出时知道位置呢? - Unknown1987
不,键盘是操作系统的一部分,似乎操作系统可以将您的应用程序整体移动以使某些可编辑文本控件可见。如果您想实现特定的功能,则需要提出更具体的问题。 - Filip Skakun
2
看看这个问题,似乎没有一个好的解决方案来处理键盘。 - Nicholas W

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接