GDI+ と C# で、AddRectangle メソッドと AddLine メソッドを使用してグラフィックス パスを使用してテーブルを作成しました。
マウスの移動中に、この完全なテーブルのサイズを変更/移動したいと思います。
すべてのサブパスを繰り返し処理し、マウスの移動中にすべてを再計算できますが、この完全なグラフィックス パスを一度に移動またはサイズ変更できる方法はあるのでしょうか。
さて、GraphicsPath.Transform があります。
Matrix m = new Matrix();
m.Scale(scaleX, scaleY, MatrixOrder.Append);
m.Translate(offsetX, offsetY, MatrixOrder.Append);
path.Transform(m);
ただし、GDI+ は単精度浮動小数点のみを使用するため、パスを何度も変換するのはおそらく良くありません。必要に応じて変換する元のパスを保持することをお勧めします。
または、描画する前に Graphics オブジェクトの変換を編集したり、すべての描画の前にパスを再構築したりできます。どんなにやっても同じ結果が得られます。変換されたパスは、新しいパスより速く描画されることはなく、パスを構築するのにかかる時間はおそらく無視できます。したがって、再計算は最も簡単に記述できると思いますが、考えられるデメリットはありません。