2010-12-03 15 views
1

キャンバス要素にネストされた2つの単純な図形の間のパスを描画するのにLineGeometryを使用する際に問題があります。ここでC#/ WPF:ネストされたUI要素を含むLineGeometry

は、私は問題を示すために一緒に入れている迅速なデモです:

MainWindow.xaml:http://pastebin.ca/2010012

MainWindow.xaml.cs:http://pastebin.ca/2010013

(私は、コードを貼り付けますと思いました)私は物事を説明しようとすると著しく悪いです:))

このデモでは、私は正常にparentCanvasにネストされた矩形間のパスを描画することができますが、私はtr私は別のキャンバス要素(それはまたparentCanvasの中に入れ子にされている)に入れ子にした楕円と同じ方法を使って、何もしないようです。

これを達成しようとしているのは、実際のアプリケーションのためです。複数の接続点(個々の楕円)を持つブロック(キャンバス要素)を視覚化しようとしているため、これらの楕円の間にパスを描く必要があります異なるブロック間でこれを図で表すと、次のようになります。http://img27.imageshack.us/img27/8255/blocksj0.png

コメント/ご感想ありがとうございます。

ありがとう、 Hamza。

答えて

0

まあ、最初にやろうとしていたことを達成するための回避策が見つかりました。キャンバス要素にネストされた子のShape要素を見つけようとするのではなく、単にShapesの位置から座標のセットを計算します。

コードのこのビットは、私がいることを成し遂げる方法を説明する必要があります場合には他の誰かが重宝

lg.StartPoint = new Point((Canvas.GetLeft(canvasSrc) + canvasSrc.ActualWidth - 1), (Canvas.GetTop(canvasSrc) + Canvas.GetTop(rectangle5) + rectangle5.ActualHeight/2)); 
lg.EndPoint = new Point((Canvas.GetLeft(canvasDest) + 1), (Canvas.GetTop(canvasSrc) + Canvas.GetTop(rectangle6) + rectangle6.ActualHeight/2)); 

がこの投稿:)

関連する問題