2011-04-27 22 views
2

SilverlightでキャンバスにUserControlの位置を取得するのに問題があります。通常、私は、オブジェクトの位置を取得するには、このコードを使用すると思い、それが正常に動作します: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自体にこのコードを入れてみました(そして、メソッドを介して公開しています)。

答えて

0

芝生の法律が進むにつれて、私はこれを数時間続けてきましたが、最終的に質問を投稿して解決しました。

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