C#:向Canvas添加路径

本文关键字:添加 路径 Canvas | 更新日期: 2023-09-27 17:59:26

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

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

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

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

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

2) 如何将画布的观看范围更改为"移动"到其子对象实际绘制的位置?

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

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

我基本上想将一组Geometry对象添加到画布中,并使画布的视图移动到其子对象的边界框上。如何在C#中用程序实现这一点。如果你对形状进行硬编码,这在XAML中很容易做到,但在我的情况下,我想知道如何为任何给定的形状和大小自动缩放。

C#:向Canvas添加路径

您在代码隐藏中添加形状的方法对我来说绝对不错。将Canvas移动到"聚焦"特定区域并不是自动为您完成的。但是,您可以添加TranslateTransform来移动子项:

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