我有一个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中完成,但在我的情况下,我想知道如何自动缩放和缩放任何给定的形状和大小。
答案 0 :(得分:0)
在代码隐藏中添加形状的方法对我来说绝对没问题。将Canvas
移动到特定区域的'焦点'并不是它自动为您做的事情。但是,您可以添加TranslateTransform
来移动孩子:
canvas.RenderTransform = new TranslateTransform () { X = 100, Y=-100 };