我正在尝试编写一个简单的程序,让我在单击图像时在图像顶部叠加一个点。我可以将X和Y数据保存回我的数据库,但之后我希望能够在以后再调用该信息并通过代码再次覆盖点,这与用户第一次点击图像不同。 / p>
我得到了点击的X和Y没有问题,但我很难找到专门针对我想要做的事情的例子。在线的所有示例似乎都是为了使用添加的图形保存图像,但我不需要这样做,因为它每次都是相同的图像。
一旦我能做到这一点,我还需要找到一种可以检测图像的哪个区域被点击的方法。我需要标记的区域在形状和大小上有所不同所以我需要尝试找出一种方法来“映射”这些区域,然后与用户点击的坐标交叉引用(我假设我可能需要这样做)一些聪明的几何东西呢?)
如果有人对我的任何一个问题的研究对象/课程/方法等有任何建议,我将非常感激。
提前致谢
答案 0 :(得分:1)
您可以使用System.Drawing命名空间来实现此目的。
创建一个控件并覆盖OnPaint和OnPaintBackground。将您的点击次数存储在列表
中在OnPaintBackground
中,使用作为参数传递给您的图形对象,使用DrawImageUnscaled
绘制图像。
在OnPaint
中,循环点数组并调用graphics.FillElipse
或类似字符以绘制一个小点。
因为这不是保留模式图形系统,所以您需要继续绘制这些项目,这样可能不适合大量的点。在这种情况下,您可以使用graphics.FromImage
创建内存位图并获取图形绘制对象。