- 软件开发视频大讲堂:ASP.NET从入门到精通(第4版)
- 明日科技
- 2292字
- 2020-11-28 17:50:16
3.4 图形显示类型控件
3.4.1 Image控件
1.Image控件概述
Image控件用于在页面上显示图像。在使用Image控件时,可以在设计或运行时以编程方式为Image对象指定图形文件。如图3.37所示为Image控件。
图3.37 Image控件
Image控件的常用属性及说明如表3.23所示。
表3.23 Image控件的常用属性及说明
下面介绍Image控件的ImageAlign和ImageUrl属性。
ImageAlign属性
ImageAlign属性指定或确定图像相对于网页上其他元素的对齐方式。在表3.24中列出了可能的对齐方式。
表3.24 Image控件的ImageAlign属性的对齐方式
ImageUrl属性
ImageUrl属性用于设置在Image控件中显示图像的位置(URL)。在设置ImageUrl属性值时,可以使用相对URL,也可以使用绝对URL。相对URL使图像的位置与网页的位置相关联,当整个站点移动到服务器上的其他目录时,不需要修改ImageUrl属性值;而绝对URL使图像的位置与服务器上的完整路径相关联,当更改站点路径时,需要修改ImageUrl属性值。笔者建议,在设置Image控件的ImageUrl属性值时,使用相对URL。
2.实现动态显示用户头像功能
【例3.15】 实现动态显示用户头像功能。(示例位置:TM\sl\03\15)
本示例主要是通过改变Image控件的ImageUrl属性值来动态显示用户头像。执行程序,并在下拉列表框中选择“boy图像”选项,示例运行结果如图3.38所示。在下拉列表框中选择“girl图像”选项,示例运行结果如图3.39所示。
图3.38 “boy图像”显示
图3.39 “girl图像”显示
程序实现的主要步骤如下。
(1)新建一个网站,默认主页为Default.aspx,在Default.aspx页面上添加1个DropDownList控件和1个Image控件,其属性设置及用途如表3.25所示。
表3.25 Default.aspx页面中控件属性的设置及用途
(2)在DropDownList控件的SelectedIndexChanged事件下编写如下代码,实现动态显示用户头像。
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) { //用户选择DropDownList控件中的不同项时,显示不同的用户头像 if (DropDownList1.SelectedIndex == 1) { Image1.ImageUrl = "~/images/boy.jpg"; } else if (DropDownList1.SelectedIndex == 2) { Image1.ImageUrl = "~/images/girl.jpg"; } else { Image1.ImageUrl = ""; } }
说明
在使用Image控件时,一般情况下要设置其AlternateText属性(在图像无法显示时显示的替换文字)。设置此属性后,浏览网页时将光标放置在控件上也会显示说明文字。
3.4.2 ImageMap控件
1.ImageMap控件概述
ImageMap控件允许在图片中定义一些热点(HotSpot)区域。当单击这些热点区域时,将会引发超链接或者单击事件。当需要对某幅图片的局部实现交互时,使用ImageMap控件,如以图片形式展示网站地图和流程图等。如图3.40所示为ImageMap控件。
图3.40 ImageMap控件
(1)ImageMap控件常用属性
ImageMap控件的常用属性及说明如表3.26所示。
表3.26 ImageMap控件的常用属性及说明
ImageMap控件比较重要的两个属性是HotSpotMode属性和HotSpots属性。下面分别进行介绍。
HotSpotMode属性
HotSpotMode属性用于获取或者设置单击热点区域后的默认行为方式。在表3.27中列出了HotSpotMode属性的枚举值。
表3.27 ImageMap控件的HotSpotMode属性的枚举值
注意
HotSpotMode属性虽然为图片中所有热点区域定义了单击事件的默认行为方式,但在某些情况下,图片中热点区域的行为方式各不相同,需要单独为每个热点区域定义HotSpotMode属性及其相关属性。
HotSpots属性
HotSpots属性用于获取HotSpots对象集合。HotSpot类是一个抽象类,它包含CircleHotSpot(圆形热区)、RectangleHotSpot(方形热区)和PolygonHotSpot(多边形热区)3个子类,这些子类的实例称为HotSpot对象。创建HotSpot对象的步骤如下。
① 在ImageMap控件上右击,在弹出的快捷菜单中选择“属性”命令,弹出属性面板。
② 在属性面板中,单击HotSpots属性后的按钮,将会弹出“HotSpot集合编辑器”对话框,如图3.41所示。单击“添加”按钮后的按钮,将会弹出一个下拉菜单,该下拉菜单中包括CircleHotSpot(圆形热区)、RectangleHotSpot(方形热区)和PolygonHotSpot(多边形热区)3个对象,可以通过单击添加对象。
图3.41 HotSpot集合编辑器
③ 为热点区域设置属性。在定义每个热点区域的过程中,主要设置两个属性。一个是HotSpotMode及其相关属性。HotSpot对象中的HotSpotMode属性用于为单个热点区域设置单击后的显示方式,与ImageMap控件的HotSpotMode属性基本相同。例如,当HotSpotMode属性值设置为PostBack时,则必须设置定义回传值的PostBackValue属性。另一个是热点区域坐标属性,对于CircleHotSpot(圆形热区),需要设置半径Radius和圆心坐标X和Y;对于RectangleHotSpot(方形热区),需要设置其左、上、右、下的坐标,即Left、Top、Right、Bottom属性;对于PolygonHotSpot(多边形热区),需要设置每一个关键点的坐标Coordinates属性。
④ 单击“确定”按钮,创建完成。
(2)ImageMap控件的常用事件
ImageMap控件的常用事件是Click事件,该事件在用户单击热点区域时发生。当HotSpotMode属性设置为PostBack时,需要定义并实现该事件的处理程序。
2.使用ImageMap控件展示图片中的方位
【例3.16】 使用ImageMap控件展示图片中的方位。(示例位置:TM\sl\03\16)
本示例主要使用ImageMap控件展示图片中的方位。执行程序,示例运行结果如图3.42所示,在图片中单击西北方向,在界面中,将会显示“您现在所指的方向是:西北方向”字样,如图3.43所示。
图3.42 示例运行结果
图3.43 指向“西北方向”
程序实现的主要步骤如下。
(1)新建一个网站,默认主页为Default.aspx,在Default.aspx页面上添加1个ImageMap控件,其属性设置如表3.28所示。
表3.28 ImageMap控件属性设置
(2)定义4个RectangleHotSpot(方形热区),并为每个热点区设置相关的属性。
在属性面板中,单击HotSpots属性后的按钮,弹出“HotSpot集合编辑器”对话框,在其中单击“添加”按钮后的按钮,在下拉菜单中单击4个RectangleHotSpot(方形热区)项,并设置其左(Left)、上(Top)、右(Right)和下(Bottom)的坐标值,4个热点区的属性设置如下所示。
显示“西北”方向的RectangleHotSpot的属性设置
Bottom设置为100、Right设置为100、HotSpotMode设置为PostBack、PostBackValue设置为NW、AlternateText设置为“西北”。
显示“东北”方向的RectangleHotSpot的属性设置
Bottom设置为100、Left设置为100、Right设置为100、HotSpotMode设置为PostBack、PostBackValue设置为NE、AlternateText设置为“东北”。
显示“西南”方向的RectangleHotSpot的属性设置
Bottom设置为200、Right设置为100、Top设置为100、HotSpotMode设置为PostBack、PostBackValue设置为SW、AlternateText设置为“西南”。
显示“东南”方向的RectangleHotSpot的属性设置
Bottom设置为200、Left设置为100、Right设置为200、Top设置为100、HotSpotMode设置为PostBack、PostBackValue设置为SE、AlternateText设置为“东南”。
注意
对于ImageMap控件的属性设置,也可以通过在HTML视图中添加如下代码来实现。
<asp:ImageMap ID="ImageMap1" ImageUrl="~/images/指南针.jpg " runat="server" OnClick="ImageMap1_Click" Borderwidth="1PH" HotSpotMode="PostBack"> <asp:RectangleHotSpot Bottom="100" Right="100" HotSpotMode="PostBack" PostBackValue="NW" AlternateText="西北" /> <asp:RectangleHotSpot Bottom="100" Left="100" Right="200" AlternateText="东北" HotSpotMode="PostBack" PostBackValue="NE" /> <asp:RectangleHotSpot Bottom="200" Right="100" Top="100" AlternateText="西南" PostBackValue="SW" HotSpotMode="PostBack" /> <asp:RectangleHotSpot Bottom="200" Left="100" Right="200" AlternateText="东南" Top="100" PostBackValue="SE" HotSpotMode="PostBack" /> </asp:ImageMap>
(3)为了实现在单击图片中的热点区域时,将图片的方位显示出来,需要在ImageMap控件的Click事件下添加如下代码:
protected void ImageMap1_Click(object sender, ImageMapEventArgs e) { String region = ""; switch (e.PostBackValue) { case "NW": region = "西北"; break; case "NE": region = "东北"; break; case "SE": region = "东南"; break; case "SW": region = "西南"; break; } Label1.Text="您现在所指的方向是: "+region+"方向。"; }