如何将一个图像转换为整个按钮组?

时间:2012-02-07 00:22:24

标签: .net vb.net image button

在我的情况下,我有一张我现在所在办公室的地图,我想在我点击每个不同房间的地方进行相应的事件(例行等)。我想这是可能的,但我只见过(在这里和其他地方)将图像转换为按钮,或者使用带有图像作为背景的按钮。但我从未见过将单个图像的区域转换为多个可点击的对象。我知道HTML有一个东西,你使用(x,y)开始和(x,y)结束标记特定的像素范围,使图像的一小部分作为一个按钮工作,但我不记得像visual basic那样的东西或.Net。

3 个答案:

答案 0 :(得分:2)

查看此article on this site: How to realize with WinForms in C# something like an image with map areas in a homepage (at hoovering cover areas with semi transparent rectangle)?

还有:VBNet Image Map

一些代码段:

Public Sub New()

    Dim pts As New List(Of PointF)()

    pts.Add(New PointF(70, 160))
    pts.Add(New PointF(215, 244))
    pts.Add(New PointF(242, 217))
    pts.Add(New PointF(159, 71))
    pts.Add(New PointF(70, 160))

    Me.formulas.Add(New Formula(New PolygonF(pts.ToArray()), "P=RI^2"))

    '//create next polygon
    pts = New List(Of PointF)()
    pts.Add(New PointF(X, Y))
    pts.Add(New PointF(X2, Y2))
    '//etc...
    pts.Add(New PointF(X, Y))
    Me.formulas.Add(New Formula(New PolygonF(pts.ToArray()), _
                                             "Formula XYZ"))

    Me.InitializeComponent()

    Me.PictureBox1.Image = My.Resources.OhmsLawWheel

End Sub

答案 1 :(得分:1)

“标记特定像素范围的事物”称为图像映射,并且有一个.Net类。

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.imagemap.aspx#Y0

MSDN页面上的示例和相关主题可能可以指导您。

这适用于网络应用。你可以吗?

答案 2 :(得分:0)

如果您要创建网络应用,请查看Image Maps。如果您要创建本机应用程序,则可能需要更多地创建。如果您有基于矢量的图像,则可以将其与WPF一起使用以创建简单的界面。如果不是,您将需要在每个“房间”中放置按钮或编写自己的代码进行边界检查。