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 を(Image要素とページの両方で)呼び出してみInvalidateArrangeましたが、役に立ちませんでした(これらの呼び出しが と何らかの関係があるかどうかはわかりませんTransformToVisual)。

何が問題なのですか?

更新: 電話をピンでロックしてからロックを解除すると、上記の問題は発生しません。

更新 2: 位置は、画像がページの中央にある場合に画像の左上隅になる場所のようです。(画像のサイズは 170x260 に固定されています。座標は 155,255 です。2*155 + 170 = 480、2*255 + 260 = 770 (2 番目のサイズは正確には 800 ではありませんが、とにかく疑わしいです。アプリケーション バーとシステムトレイは両方とも非表示です。))

UPDATE3: アプリのメイン ページで問題が発生します。ただし、別のページに移動してからメイン ページに戻っても、正しく機能します。

4

0 に答える 0