私は別のシルバーライトコントロールc2を含むシルバーコントロールc1を持っています。
以下のコードを実行しようとしているとき。ネストされたコントロール+上部、左のプロパティ
c1.c2.GetValue(Canvas.LeftProperty)
c1.c2.GetValue(Canvas.TopProperty)
結果は、私がメインのキャンバスに比べて内部制御のためのトップとLeftプロパティを取得できますか常に0 です。
私は別のシルバーライトコントロールc2を含むシルバーコントロールc1を持っています。
以下のコードを実行しようとしているとき。ネストされたコントロール+上部、左のプロパティ
c1.c2.GetValue(Canvas.LeftProperty)
c1.c2.GetValue(Canvas.TopProperty)
結果は、私がメインのキャンバスに比べて内部制御のためのトップとLeftプロパティを取得できますか常に0 です。
次の操作を行うことができます
var transform = c2.TransformToVisual(c1);
var relativePoint = transform.Transform(new Point(0, 0));
var c2left = c1.GetValue(Canvas.LeftProperty) + relativePoint.X
var c2top = c1.GetValue(Canvas.TopProperty) + relativePoint.Y
+1ですが、私は 'c2.TransformToVisual(c1.Parent)'を使い、最後の2行の式を気にしません。 – AnthonyWJones
@AnthonyWJones:nice idea、thanks) –
私が正しくあなたを理解している場合、c1ははい、いくつかのキャンバスの子ですか? –
はい、キャンバスにc1が追加されました。 –
より多くのコンテキストと 'c1'と' c2'がどのようにキャンバスに追加されるのかを表示できますか? – ChrisF