2

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

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

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

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

可能是什么问题呢?

更新:如果我将手机锁定然后解锁,则不会发生上述问题。

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

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

4

0 回答 0