zoukankan      html  css  js  c++  java
  • ImageMap控件

    ImageMap控件可以在Web页面上创建一个图像,该图像可以包含许多可由用户单击的区域,这些区域称为“热点(HotSpot)”。每一个热点都可以是一个单独的超链接或者回发(PostBack)事件。用户可以通过单击这些热点区域进行回发操作或者定向(Navigate)到某个URL地址。可以根据需要为图像定义任意数量的热点,但不需要定义足以覆盖整个图形的热点。因此,该控件一般用在需要对某张图片的局部范围进行互动操作时。

    在日常编程中,主要使用它的HotSpotMode、HotSpots属性和Onick事件。

    1) HotSpotMode属性。顾名思义,HotSpotMode为热点模式,它对应枚举类型System.Web.UI.WebControls.HotSpotMode。其选项及说明如表3-4所示。

    表3-4   HotSpotMode属性的选项说明

    2) HotSpots属性。该属性对应着System.Web.UI.WebControls.HotSpot对象集合。HotSpot类是一个抽象类,它有CircleHotSpot(圆形热区)、RectangleHotSpot(矩形热区)和PolygonHotSpot(多边形热区)这三个子类。实际应用中,都可以使用上面三种类型来定制图片的热点区域。如果需要使用到自定义的热点区域类型,该类型必须继承HotSpot抽象类。

    3) Onclick事件。对热点区域的点击事件经常在HotSpotMode为PostBack时用到。

    现在先来看下面的一个示例程序。该示例用到了HotSpotMode,并将一个图片分成3个矩形热点区域(RectangleHotSpot),当单击每个矩形热点区域时,就会连接到另外一个Web站点。其中,Top、Left、Bottom和Right代表RectangleHotSpot的四个坐标点,以此来形成一个矩形热点区域,如代码清单3-1所示。

    代码清单3-1   TestImageMap1.aspx

    1. <formid="form1"runat="server">
    2. <div>
    3. <asp:ImageMapID="imageMap1"ImageUrl="Images/1.jpg"
    4. AlternateText="ImageMap控件示例"Runat="Server">
    5. <asp:RectangleHotSpotHotSpotMode="Navigate"
    6. NavigateUrl="http://www.comesns.com"
    7. AlternateText="区域一,连接到www.comesns.com"
    8. Top="0"Left="0"Bottom="35"Right="90">
    9. asp:RectangleHotSpot>
    10. <asp:RectangleHotSpotHotSpotMode="Navigate"
    11. NavigateUrl="http://www.google.cn"
    12. AlternateText="区域二,连接到www.google.cn"
    13. Top="0"Left="90"Bottom="35"Right="180">
    14. asp:RectangleHotSpot>
    15. <asp:RectangleHotSpotHotSpotMode="Navigate"
    16. NavigateUrl="http://www.baidu.com"
    17. AlternateText="区域三,连接到www.baidu.com"
    18. Top="35"Left="0"Bottom="70"Right="180">
    19. asp:RectangleHotSpot>
    20. asp:ImageMap>
    21. div>
    22. form>

    运行上面的程序,结果如图3-1所示。在该运行结果中,当把鼠标放到某个矩形热点区域时就能够出现相应的信息提示。比如把鼠标放在热点区域二中,会出现“区域二,连接到www.google.cn”的提示信息,单击该热点区域,就会连接到www.google.cn网站。

     

    由上面的示例可以看出,ImageMap控件实际是由两个部分组成:

    第一个部分是图像,它可以是任何标准 Web 图形格式的图形,例如 .gif、.jpg 或 .png 文件。

    第二个部分是一个热点控件集。每个热点控件都是一个不同的元素。对于每个热点控件,都需要定义其形状[CircleHotSpot(圆形热区)、RectangleHotSpot(矩形热区)和PolygonHotSpot(多边形热区)],还要定义用于指定热点位置和大小的坐标。例如,如果创建了一个矩形热点区域,则应定义它的四个坐标点位置。

    在代码清单3-1中,为每个矩形热点配置了一个超链接,通过该超链接可以转到为该矩形热点提供的 URL地址。当然,还可以将该控件配置为在用户单击某个热点时执行回发,为每个热点提供一个唯一值。回发会引发ImageMap控件的OnClick事件。在事件处理程序中,可以读取分配给每个热点的唯一值。来看下面的示例,如代码清单3-2所示。

    代码清单3-2   TestImageMap2.aspx

    1. <formid="form1"runat="server">
    2. <div>
    3. <asp:ImageMapid="imageMap2"ImageUrl="Images/1.jpg"
    4. AlternateText="ImageMap控件示例"HotSpotMode="PostBack"
    5. Runat="Server"onclick="imageMap2_Click">
    6. <asp:RectangleHotSpotHotSpotMode="PostBack"
    7. PostBackValue="http://www.comesns.com"
    8. AlternateText="区域一,连接到www.comesns.com"
    9. Top="0"Left="0"Bottom="35"Right="90">
    10. asp:RectangleHotSpot>
    11. <asp:RectangleHotSpotHotSpotMode="PostBack"
    12. PostBackValue="http://www.google.cn"
    13. AlternateText="区域二,连接到www.google.cn"
    14. Top="0"Left="90"Bottom="35"Right="180">
    15. asp:RectangleHotSpot>
    16. <asp:RectangleHotSpotHotSpotMode="PostBack"
    17. PostBackValue="http://www.baidu.com"
    18. AlternateText="区域三,连接到www.baidu.com"
    19. Top="35"Left="0"Bottom="70"Right="180">
    20. asp:RectangleHotSpot>
    21. asp:ImageMap>
    22. <br/>
    23. <asp:LabelID="label1"runat="server">asp:Label>
    24. div>
    25. form>

    如代码清单3-2所示,它使用了PostBack回发模式,并在ImageMap控件里添加了一个OnClick事件imageMap2_Click。imageMap2_Click事件处理代码如下:

    1. protected void imageMap2_Click(object sender, ImageMapEventArgs e)
    2. {
    3. label1.Text = e.PostBackValue
    4. + " clicked!";
    5. }

    运行上面的程序,结果如图3-2所示。在该运行结果中,当把鼠标放到某个矩形热点区域时就能够出现相应的信息提示。单击该热点区域时,就会触发imageMap2_Click事件,在页面输出被单击区域的PostBackValue值。

  • 相关阅读:
    LVS基于DR模式负载均衡的配置
    Linux源码安装mysql 5.6.12 (cmake编译)
    HOSt ip is not allowed to connect to this MySql server
    zoj 3229 Shoot the Bullet(无源汇上下界最大流)
    hdu 3987 Harry Potter and the Forbidden Forest 求割边最少的最小割
    poj 2391 Ombrophobic Bovines(最大流+floyd+二分)
    URAL 1430 Crime and Punishment
    hdu 2048 神、上帝以及老天爷(错排)
    hdu 3367 Pseudoforest(最大生成树)
    FOJ 1683 纪念SlingShot(矩阵快速幂)
  • 原文地址:https://www.cnblogs.com/xiexingen/p/2850160.html
Copyright © 2011-2022 走看看