C#:添加到画布的路径

时间:2011-06-19 04:28:28

标签: c# wpf

我有一个200像素宽,100像素高的画布。然后我有4个方格以棋盘格式排列:

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

左下方的像素坐标为300,300;所以它在画布的视野之外。我有两个问题:

1)将这4个方块添加到画布的最佳方法是什么?这就是我一直在做的事情。

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

canvas.Children.Add(p);

2)如何更改画布的观看范围以“移动”到实际绘制其子项的位置?

我不能让这个工作,但我可以得到两种工作结果。第一个是我只是绘制正方形并添加一个可以将它们缩小的变换。这导致形状在画布中可见,但它们不能很好地居中或缩放。

第二种情况是,它们全部叠加在一起但是居中。当我设置路径的拉伸值时会发生这种情况。

我基本上想要将一组Geometry对象添加到画布中,并使画布的视图移动以专注于其子项的边界框。如何在C#中以编程方式执行此操作。如果您对形状进行硬编码,这很容易在XAML中完成,但在我的情况下,我想知道如何自动缩放和缩放任何给定的形状和大小。

1 个答案:

答案 0 :(得分:0)

在代码隐藏中添加形状的方法对我来说绝对没问题。将Canvas移动到特定区域的'焦点'并不是它自动为您做的事情。但是,您可以添加TranslateTransform来移动孩子:

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