0

在 GDI+ 和 C# 中,我使用 AddRectangle 和 AddLine 方法使用图形路径创建了一个表

在此处输入图像描述

现在在我的鼠标移动期间,我想调整/移动这个完整的表格。

我可以遍历所有子路径并在鼠标移动期间重新计算所有内容,但我想知道是否有任何方法可以一次移动或调整这个完整的图形路径。

4

1 回答 1

2

嗯,有 GraphicsPath.Transform。

Matrix m = new Matrix();
m.Scale(scaleX, scaleY, MatrixOrder.Append);
m.Translate(offsetX, offsetY, MatrixOrder.Append);
path.Transform(m);

不过,考虑到 GDI+ 仅使用单精度浮点数,将路径转换太多次可能并不好。我建议保留您根据需要进行转换的原始路径。

或者,您可以在绘制之前编辑 Graphics 对象的变换,或者在每次绘制之前重建路径。不管你怎么做,你都会得到相同的结果。转换后的路径不会比新路径绘制得更快,而且构建路径所需的时间可能可以忽略不计。所以我猜重新计算是最简单的写法,而且它没有我能想到的缺点。

于 2013-02-15T01:23:38.130 回答