利用 ASP.NET ImageMap 控件可以創建一個圖像,使其包含許多可由用戶單擊的區域(熱區),這些區域稱為“作用點”。每一個作用點都可以是一個單獨的超鏈接或回發事件。
常用屬性:
HotSpotMode屬性
HotSpotMode屬性用於獲取或設置單擊熱點區域後的默認行為方式。
ImageMap控件的HotSpotMode屬性的枚舉值如下表所示:
注意:HotSpotMode屬性雖然為圖片中所有熱點區域定義了單擊事件的默認行為方式,但在某些情況下,由於圖片中熱點區域的行為方式各不相同,所以還需要單獨為每個熱點區域定義HotSpotMode屬性及其相關屬性。
HotSpots屬性
HotSpots屬性用於獲取HotSpots對象集合。
ImageMap控件由HotSpot類的實例組成。一個HotSpot定義圖像映射中的一個可點擊區域。ASP.NET Framework帶有3種HotSpot類。
CircleHotSpot:用於在圖像映射中定義一個圓形區域。
RectangleHotSpot:用於在圖像映射中定義一個矩形區域。
PolygonHotSpot:用於在圖像映射中定義一個不規則形狀區域。
CircleHotSpot、RectangleHotSpot和PolygonHotSpot這3個子類的實例稱為HotSpot對象。
示例代碼:
Default.aspx
復制代碼 代碼如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>示例8-4</title>
<link id="InstanceStyle" href="StyleSheet.css" type="text/css" rel="stylesheet" />
</head>
<body>
<form id="Form1" runat="server">
<div>
<fieldset style="width: 290px">
<legend class="mainTitle">ImageMap控件典型應用</legend>
<br />
<asp:ImageMap ID="ImageMap1" runat="server" ImageUrl="~/Image/pic1.png" OnClick="ImageMap1_Click">
<asp:RectangleHotSpot AlternateText="模塊" Bottom="175" Left="77" NavigateUrl="http://localhost/"
Right="150" Target="_blank" Top="119" />
<asp:CircleHotSpot AlternateText="處理1" HotSpotMode="PostBack" PostBackValue="Pro1"
Radius="39" X="241" Y="50" />
<asp:CircleHotSpot AlternateText="處理2" HotSpotMode="PostBack" PostBackValue="Pro2"
Radius="39" X="241" Y="285" />
<asp:PolygonHotSpot AlternateText="引擎" Coordinates="366,118,325,160,372,206,411,161"
HotSpotMode="Inactive" />
</asp:ImageMap>
<br />
<asp:Label ID="LabMessage" runat="server"></asp:Label>
</fieldset>
</div>
</form>
</body>
</html>
Default.aspx.cs
復制代碼 代碼如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ImageMap1_Click(object sender, ImageMapEventArgs e)
{
String region = "";
switch (e.PostBackValue)
{
case "Pro1":
region = "處理1";
break;
case "Pro2":
region = "處理2";
break;
}
LabMessage.Text = "您單擊的是<b>" + region + "</b>.";
}
}