我不得不实施一个解决方案,因为我不知道如何继续,因为我不太了解这种语言(C#)。在图像中创建可点击区域?
让我解释一下: 目标是让东西允许用户从一个项目(它有一个圆形)中选择一个区域。 所以这个想法被放在一个区域上的数字图像(所以最终它看起来像一个时钟),并从用户点击的号码获得区域。
所以我的问题是:是否有可能在图像中创建可点击区域? (或者如果你有这个功能性的另一个解决方案,我很开明)
在此先感谢!
编辑>>这是一个WinForm应用程序,而不是一个网站。
我不得不实施一个解决方案,因为我不知道如何继续,因为我不太了解这种语言(C#)。在图像中创建可点击区域?
让我解释一下: 目标是让东西允许用户从一个项目(它有一个圆形)中选择一个区域。 所以这个想法被放在一个区域上的数字图像(所以最终它看起来像一个时钟),并从用户点击的号码获得区域。
所以我的问题是:是否有可能在图像中创建可点击区域? (或者如果你有这个功能性的另一个解决方案,我很开明)
在此先感谢!
编辑>>这是一个WinForm应用程序,而不是一个网站。
非常感谢大家的回答,其中有些有趣的东西。
不幸的是,我不得不开发这个速度非常快,我刚刚创建的,我会赶上的onclick事件,然后赶区使用Cursor.Position这样用户点击图像:
int X = pictureBox.PointToClient(Cursor.Position).X;
int Y = pictureBox.PointToClient(Cursor.Position).Y;
也许不是“干净”的方式来做到这一点,但它的工作原理! 无论如何,谢谢!
调查Html imagemaps。
将花约5分钟学习如何使用。
你可以将标签和地图属性 比定义你的地图区域和链接
这里有一个快速谷歌回应 http://www.javascriptkit.com/howto/imagemap.shtml
同上,我忘了提及我正在构建一个winforms应用程序,而不是一个网站,所以这不能用:s – BPruvost 2012-04-18 07:47:45
虽然不是所有的流行了,you can use the <map>
tag要做到这一点。
<img src="planets.gif" width="145" height="126" alt="Planets" usemap="#planetmap" />
<map name="planetmap">
<area shape="rect" coords="0,0,82,126" href="sun.htm" alt="Sun" />
<area shape="circle" coords="90,58,3" href="mercur.htm" alt="Mercury" />
<area shape="circle" coords="124,58,8" href="venus.htm" alt="Venus" />
</map>
编辑:
因为这需要一个WinForms的解决方案,也许这篇文章可以帮助你。
你为什么不只是实现这样的事情?
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<MouseEventArgs> Click { get; private set; }
public Zone(Region zoneRegion, Action<MouseEventArgs> click)
{
this.Region = zoneRegion;
this.Click = click;
}
}
public class PictureBoxWithClickableZones : PictureBox
{
private readonly List<Zone> zones = new List<Zone>();
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中也是如此。
这是一个网站或WinForms应用程序? – user7116 2012-04-17 15:21:02
这是一个winforms应用程序,我确实忘了提及 – BPruvost 2012-04-18 07:46:39