C# WPF 矩形和线统一坐标系
时间: 2023-07-12 09:44:15 浏览: 100
在 WPF 中,矩形和线都是使用 `System.Windows.Shapes` 命名空间下的类来表示的。这些图形都有一个 `RenderTransform` 属性,可以用来对它们进行平移、旋转、缩放等变换操作。
如果要让矩形和线统一坐标系,可以在它们的 `RenderTransform` 属性上设置相同的 `Transform` 对象。这个 `Transform` 对象可以是一个 `TranslateTransform`,用来进行平移操作,也可以是一个 `TransformGroup`,用来同时进行多种变换操作。
以下是一个示例代码,演示如何将一个矩形和一条线统一坐标系:
```csharp
// 创建一个平移变换,将坐标系原点平移到 (100, 100) 处
TranslateTransform translateTransform = new TranslateTransform(100, 100);
// 创建一个矩形,并将它的 RenderTransform 属性设置为平移变换
Rectangle rectangle = new Rectangle();
rectangle.Width = 50;
rectangle.Height = 50;
rectangle.Fill = Brushes.Blue;
rectangle.RenderTransform = translateTransform;
// 创建一条线段,并将它的 RenderTransform 属性设置为平移变换
Line line = new Line();
line.X1 = 0;
line.Y1 = 0;
line.X2 = 50;
line.Y2 = 50;
line.Stroke = Brushes.Red;
line.StrokeThickness = 2;
line.RenderTransform = translateTransform;
// 将矩形和线段添加到画布中显示
Canvas canvas = new Canvas();
canvas.Children.Add(rectangle);
canvas.Children.Add(line);
```
在上面的代码中,我们先创建了一个 `TranslateTransform` 对象,将坐标系原点平移到了 (100, 100) 处。然后分别创建了一个矩形和一条线段,并将它们的 `RenderTransform` 属性都设置为了这个平移变换。最后将矩形和线段添加到一个画布上,就可以看到它们在同一个坐标系中显示了。
阅读全文
相关推荐

















