2

Silverlight のキャンバスで UserControl の位置を取得できません。通常、このコードを使用してオブジェクトの位置を取得すると、正常に機能します。

  GeneralTransform gt = this.TransformToVisual(Application.Current.RootVisual as UIElement);
  Point offset = gt.Transform(new Point(0, 0));
  double controlTop = offset.Y;
  double controlLeft = offset.X;

その位置を変換するメソッドを持つ UserControl があります。上記のコードを使用して新しい位置を取得しようとすると、オブジェクトが開始された最初の位置のみが返されます。プログラムでメイン キャンバスに追加された UserControl の新しい位置を取得する方法はありますか? このコードをメインページと UserControl 自体に入れてみました (そしてメソッドを介して公開しました)。

4

1 に答える 1

1

sod の法則に従って、私はこれに数時間取り組んできましたが、質問を投稿した直後に最終的に解決しました。

UserControl に名前を付け、代わりにその名前を参照する必要があることがわかりましたthis。だから、それはでしょうucName.TransformToVisual...。以前は、thisメソッドまたは実際のオブジェクト自体を介して参照していました。

于 2011-04-27T17:25:13.380 に答える