2011-06-19 84 views
1

我有一個200像素寬,100像素高的畫布。然後,我有4個方格被佈置在棋盤型時尚:C#:添加路徑到畫布

-- -- 
| | | 
-- -- 
| | | 
-- -- 

左下方正方形的像素座標是300300;所以它在畫布的視野之外。我有2個問題:

1)將這4個方格添加到畫布的最佳方式是什麼?這是我一直在做的。

Path p = new Path(); 
p.Fill = Blue; 
p.Data = Square[0]; 

canvas.Children.Add(p); 

2)如何改變,其中它的孩子實際上繪製在畫布上「移動」到的觀看範圍是多少?

我不能得到這個工作,但我可以得到兩種工作結果。第一個就是在那裏畫出正方形並添加一個可以縮放它們的變換。這會導致形狀在畫布中可見,但它們不會居中或放大很好。

第二種情況是,它們被添加到彼此的頂部,但居中。當我設置路徑的拉伸值時會發生這種情況。

我基本上想要將一組幾何對象添加到畫布上,並讓畫布的視圖移動以專注於其子框的邊界框。我如何以編程方式在C#中執行此操作。如果硬編碼形狀,這在XAML中很容易實現,但在我的情況下,我想知道如何自動縮放任何給定形狀和大小的縮放。

回答

0

您在代碼隱藏中添加形狀的方法對我來說看起來絕對很好。將Canvas移動到「專注」某個特定區域並不是它自動爲您做的事情。但是,您可以添加一個TranslateTransform來移動孩子:

canvas.RenderTransform = new TranslateTransform() { X = 100, Y=-100 };