在图像中创建可点击区域?

我必须实现一个我不确定如何继续的解决方案,因为我不太了解这种语言(C#)。

让我解释一下:目标是让某些东西允许用户从一个项目中选择一个区域(具有圆形forms)。 因此,想法是在区域上放置带有数字的图像(所以最后它看起来像一个时钟),并从用户点击的数字中获取区域。

所以我的问题是:是否可以在图像中创建可点击区域? (或者如果你有另一个解决这个function的解决方案,我是开明的)

提前致谢 !

编辑>>这是一个WinForm应用程序,而不是一个网站。

你为什么不实施这样的东西?

using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Windows.Forms; public class Zone { public Region Region { get; private set; } public Action Click { get; private set; } public Zone(Region zoneRegion, Action click) { this.Region = zoneRegion; this.Click = click; } } public class PictureBoxWithClickableZones : PictureBox { private readonly List zones = new List(); public void AddZone(Zone zone) { if (zone == null) throw new ArgumentNullException("zone"); this.zones.Add(zone); } protected override void OnMouseClick(MouseEventArgs e) { base.OnMouseClick(e); foreach (var zone in this.zones.Where(zone => zone.Region.IsVisible(e.Location))) zone.Click(e); } } 

如果你有时间,你可以制作适当的组件,然后在Visual Studio的WinForms Designer中使用。

谢谢大家的回答,其中有一些有趣的东西。

不幸的是,因为我必须非常快地开发它,我只是创建了一个图像,我将在其上捕获onclick事件,然后捕获用户使用Cursor.Position单击的区域,如下所示:

 int X = pictureBox.PointToClient(Cursor.Position).X; int Y = pictureBox.PointToClient(Cursor.Position).Y; 

也许不是“清洁”的方式,但它的工作原理! 不管怎么说,还是要谢谢你 !

虽然它不再流行,但您可以使用

标签来执行此操作。

 Planets  Sun Mercury Venus  

编辑:

由于这需要WinForms解决方案,也许这篇文章可以帮助您。

C#Windows窗体ImageMap控件

查看Html图像映射。

将花大约5分钟来学习如何使用。

在标签中,您可以应用和映射属性比定义地图区域和链接

这是一个快速的谷歌回复http://www.javascriptkit.com/howto/imagemap.shtml