ASP.NET 中ImageMap控件的用法

所属分类: 网络编程 / ASP.NET 阅读数: 1484
收藏 0 赞 0 分享

利用 ASP.NET ImageMap 控件可以创建一个图像,使其包含许多可由用户单击的区域(热区),这些区域称为“作用点”。每一个作用点都可以是一个单独的超链接或回发事件。

常用属性:

HotSpotMode属性

HotSpotMode属性用于获取或设置单击热点区域后的默认行为方式。
ImageMap控件的HotSpotMode属性的枚举值如下表所示:

枚举值 说明
Inactive 无任何操作,即此时就像一张没有热点区域的普通图片
NotSet 未设置项,同时也是默认项。虽然名为未设置,但是默认情况下将执行定向操作,即链接到指定的URL地址。如果未指定URL地址,则默认链接到应用程序根目录下
Navigate 定向操作项。链接到指定的URL地址。如果未指定URL地址,则默认链接到应用程序根目录下
PostBack 回传操作项。单击热点区域后,将触发控件的Click事件

注意: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>.";
    }
}

更多精彩内容其他人还在看

.NET Core源码解析配置文件及依赖注入

这篇文章我们设计了一些复杂的概念,因为要对ASP.NET Core的启动及运行原理、配置文件的加载过程进行分析,依赖注入,控制反转等概念的讲解等
收藏 0 赞 0 分享

.NET Corek中Git的常用命令及实战演练

这篇文章将通过故事的形式从Git的历史谈起,并讲述Git的强大之处。然后通过实战演练教你如何在Github以及码云上托管我们的代码并进行代码的版本控制
收藏 0 赞 0 分享

Asp.Net Core WebAPI使用Swagger时API隐藏和分组详解

这篇文章主要给大家介绍了关于Asp.Net Core WebAPI使用Swagger时API隐藏和分组的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Asp.Net Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

如何利用FluentMigrator实现数据库迁移

这篇文章主要给大家介绍了关于如何利用FluentMigrator实现数据库迁移的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

ASP.NET Core利用Jaeger实现分布式追踪详解

这篇文章主要给大家介绍了关于ASP.NET Core利用Jaeger实现分布式追踪的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用ASP.NET Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

浅谈从ASP.NET Core2.2到3.0你可能会遇到这些问题

这篇文章主要介绍了ASP.NET Core2.2到3.0可能会遇到的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解.net core webapi 前后端开发分离后的配置和部署

这篇文章主要介绍了.net core webapi 前后端开发分离后的配置和部署,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

详解ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁

这篇文章主要介绍了ASP.Net Core 中如何借助CSRedis实现一个安全高效的分布式锁,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

.net 4.5部署到docker容器的完整步骤

这篇文章主要给大家介绍了关于.net 4.5部署到docker容器的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用.net4.5具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

.net core并发下线程安全问题详解

这篇文章主要给大家介绍了关于.net core并发下线程安全问题的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用.net core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享
查看更多