繁体   English   中英

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

[英]How to find if mouse click is on an image rendered in a wf panel?

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

随之而来的是这里发生了什么。

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

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

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

目前我有一个列表中的图像被渲染,我有自己的几个想法。

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

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

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

任何帮助或反馈将不胜感激。

谢谢。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM