在图像中创建可点击区域?
我必须实现一个我不确定如何继续的解决方案,因为我不太了解这种语言(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;
也许不是“清洁”的方式,但它的工作原理! 不管怎么说,还是要谢谢你 !
虽然它不再流行,但您可以使用
标签来执行此操作。
编辑:
由于这需要WinForms解决方案,也许这篇文章可以帮助您。
C#Windows窗体ImageMap控件
查看Html图像映射。
将花大约5分钟来学习如何使用。
在标签中,您可以应用和映射属性比定义地图区域和链接
这是一个快速的谷歌回复http://www.javascriptkit.com/howto/imagemap.shtml