TransformToVisual仅首次返回不正确的结果

时间:2012-04-04 11:44:44

标签: silverlight windows-phone-7 windows-phone-7.1

我正在尝试使用TransformToVisual方法获取Image元素的绝对坐标,如下所示:

var transform = img.TransformToVisual( this ); // this is the current page
Point absolutePosition = transform.Transform( new Point(0, 0) );

我第一次使用它时,此代码返回的值不正确(总是155,255)。但是,它总是会在之后返回正确的坐标。

此代码在Tap事件处理程序中运行,因此UI在执行时已经完全呈现。我尝试调用InvalidateMeasureInvalidateArrange(同时在Image元素和页面上),但它没有帮助(我不知道这些调用是否与TransformToVisual有任何关联)。

可能是什么问题?

更新:如果我锁定我的手机然后解锁它,那么上述问题就不会发生。

UPDATE2:如果 位于页面中心,则位置似乎是 的左上角。 (图像的大小固定为170x260。我得到坐标155,255.2 * 155 + 170 = 480,2 * 255 + 260 = 770(好吧第二个不完全是800,但无论如何它都是可疑的。应用程序栏和系统托盘都是隐藏的。))

UPDATE3:问题发生在我的应用的主页上。但是,如果我导航到另一个页面,然后返回主页面,它也可以正常工作。

0 个答案:

没有答案