Canvasに2つの子 - 画像と長方形があります。Silverlight Canvasの子のLeft&Topプロパティ値を取得する方法
次のように私は、矩形の高さを得ることができます(
inkCanvas1.Children[1].GetValue(Canvas.HeightProperty)
が、私は左を試してみて、取得するとき:
rectangle.Height
を私はまた、このような矩形の高さを得ることができますまたはTop)プロパティの値を返します。
inkCanvas1.Children[1].GetValue(Canvas.LeftProperty)
これはちょうどゼロを返します。
Canvas.GetLeft(inkCanvas1.Children[1])
をしていることを返すにもゼロ:
また、私はこれを試してみました。
私が確信しているのは、RectangleのLeftプロパティとTopプロパティが0ではないことです(少なくとも、Rectangleを見て周囲を移動できるためです)。
解決方法
アプリケーションに、これらのプロパティを設定しているコードがあります。たとえば、このオブジェクトを移動する外観を与えるために変換トランスフォームを使用しないでください。これを行うコードを表示できますか? – AnthonyWJones
私は、これらのプロパティが明示的に設定されている場合にのみ設定されているように見えることに気づきました。たとえば、幅と高さのプロパティを設定しましたが、上と左のプロパティは設定しませんでした。しかし、上と左のプロパティを明示的に設定すると、上のメソッドを使用してそれらを取得できます。矩形がキャンバス上の位置にあるという事実は、明示的に設定されていなくても、彼の情報をどこかに保存しなければならないことを意味するため、この動作はちょっと奇妙です。 – descf
はい、矩形の配置に関連する変換変換があり、描画後に矩形を描画するためのマウス座標を使用して、topプロパティとleftプロパティを設定しています。 – descf