System.Drawing.Region resizing

本文关键字:resizing Region Drawing System | 更新日期: 2023-09-27 18:13:57

我正在写一个绘画应用程序。用户必须能够在绘制或编辑后与所有对象一起移动。我有一个笔刷和擦除工具,所以用户可以擦除全部或任何部分的对象用画笔绘制。所以我创建了一个对象DrawBrush,它包含一个由GraphicsPath生成的System.Drawing.Region

但是我不知道怎么给它定大小。我需要在鼠标移动时分别改变每个方向的大小(例如只向左)

有人能帮帮我吗?

我可以对这个对象做任何事情(移动),但没有大小…

System.Drawing.Region resizing

一个区域就像一个栅栏-它只是标记出一个区域的边界。它不"包含"任何图形,因此调整区域大小将没有直接/可见的效果。

如果您希望能够在编辑器中移动或调整位图图像的部分大小,则需要将主图像的一部分(根据您的区域指定)复制到临时位图中。然后,您可以将临时位图绘制回您的主图像(在不同的位置和/或以不同的大小)。

如果您希望能够在绘图程序中绘制多个对象,然后在以后独立编辑它们(移动它们并调整它们的大小),那么您需要将每个对象存储在单独的位图对象中,并将它们组合在一起以在屏幕上显示最终图像或将其保存为平面位图格式。如果你不像这样把所有的形状分开保存,你会丢失太多的信息,以后你将无法编辑它们。

在你尝试写代码来做这个之前,你可能需要考虑你的编辑器的设计——它需要做什么,你将如何实现它?你的"文件"将如何被描述?(单位图?许多在不同位置绘制的小位图?矢量图?)如果您在理解如何表示文档之前编写代码,那么您很可能会把自己画进一个角落(抱歉使用双关语)并完全陷入困境。