如何查找鼠标单击是否在wf面板中呈现的图像上?

时间:2013-08-09 14:32:20

标签: c# image rotation panel system.drawing

首先让我说我喜欢这个网站,并且在我发布之前经常找到我的问题的答案。现在我有一个问题,我似乎无法找到答案。我还要提一下,我对编程有些新意,并且只做了几个月。

有了这样的话,这是最新的事情。

我有一个带有system.drawing图形的面板,所以我可以渲染图片。

通过我渲染到面板的这些图片,我希望能够移动它们,然后与它们进行交互并旋转它们。有点像拼图游戏。

我可以让图像渲染,但需要一种方法来判断我的鼠标是否位于该位置最后渲染的图片上方。由于图像可能会渲染到另一个图像的上方,我想要获得最上面/最后一个渲染图像。

目前我将列表中的图像渲染出来,并且我确实有一些自己的想法。

  1. 在鼠标单击中,我最后扫描所有图像列表,找到当前正在该点上渲染的图像,这将是我的图像。

  2. 重新将屏幕渲染到最后,一旦像素发生变化,鼠标就是我的图像。

  3. 为每个像素分配一个图像值,在渲染图像时,其上的像素被分配给该图像,而鼠标只能拉动该图像。

  4. 非常感谢任何帮助或反馈。

    谢谢。

1 个答案:

答案 0 :(得分:1)

您使用的方法可能在很大程度上取决于您的应用程序。在不了解您尝试解决的问题的情况下,3似乎是最好的。

使用选项3,当您添加每个图像时(即将其值分配给它所覆盖的像素),正在执行大部分工作。当您添加图像时,其他选项可能在计算上不那么昂贵,但每次鼠标点击都会更昂贵。假设这适合你的应用程序(如果它类似于你所说的拼图,它很可能会这样做)我会选择类似的东西。

它还假设您的图像是矩形形状,其中可以根据角添加值,而不是任意形状,其中必须手动计算图像中的所有点。使用任意形状来确定哪种方法更快将更难以解决。

总之,您最好决定更频繁地执行哪些操作(添加图像或鼠标点击)并在另一个上执行工作。