ASP.NET 移动控件--Image 控件
对于构建有效的 ASP.NET 移动 Web 应用程序来说,将图像传输到无线设备的功能非常重要。Image 控件提供的功能可以指定要显示在无线设备上的图像。
由于无线设备的特性,单个图像文件将不能适合所有设备。某些浏览器不能显示某些图像格式,并且不是所有图像大小和颜色内容都会适合所有设备。例如,格式化为 .gif 文件的图像可以显示在支持 HTML 的浏览器上,但无法显示在支持 WML 的浏览器上。对于支持 WML 的浏览器,您需要格式化为 .wbmp 文件的图像。
您可以使用 Image 控件指定多个图像文件;这样,您可以以多种文件格式创建相同的图像。该控件根据设备特性选择正确的图像文件。Image 控件本身与您使用的图像文件的类型无关。可以使用与目标浏览器兼容的任何类型的图像文件。
正如重复使用代码成为应用程序设计中一种有效的方法一样,重复使用图像也是一种有效的方法。使用 Image 控件,您可以通过从某个图像创建用户控件重复使用该图像。有关用户控件的更多信息,请参见创建自定义 ASP.NET 移动控件文档。
移动控件语法
必需的属性、默认值和具有代码特征的元素以粗体显示。
<mobile:Image
runat="server"
id="id"
Font-Name="fontName"
Font-Size="{NotSet|Normal|Small|Large}"
Font-Bold="{NotSet|False|True}"
Font-Italic="{NotSet|False|True}"
ForeColor="foregroundColor"
BackColor="backgroundColor"
Alignment="{NotSet|Left|Center|Right}"
StyleReference="styleReference"
Wrapping="{NotSet|Wrap|NoWrap}"
AlternateText="AltText"
ImageUrl="masterImageSource"
NavigateUrl="targetURL"
SoftkeyLabel="label">
Place DeviceSpecific/Choice construct here. (optional)
</mobile:Image>
包容规则
以下控件可以包含 Image 控件。
控件 说明
System.Web.UI.MobileControls.Form 可以包含任意多个 Image 控件。
System.Web.UI.MobileControls.Panel 可以包含任意多个 Image 控件。
Image 控件可以包含以下控件。
控件 说明
System.Web.UI.MobileControls.DeviceSpecific 指定每个设备的替换图像。
Image 控件中可以不包含 DeviceSpecific 控件,也可以包含一个 DeviceSpecific 控件。
设备模板
无。
特定于设备的行为
当在移动设备上激活某个 Image 控件后,该控件将计算设备的功能。基于该计算,将发生以下情况:
如果该设备不能显示图像,则 AlternateText 属性中的文本将呈现为一个 Label 控件。
对于支持图像的设备,该控件检查是否存在指向专用于传入设备的注册图像的 URI。若要查找注册图像,该控件在 Image 控件中检查是否存在一个 <DeviceSpecific> 子句。如果存在,该控件将进行计算并从匹配的 <Choice> 子句中提取一个值。该值被视为图像文件的 URI 并用于在设备上呈现文件。
不管呈现什么内容,控件都会从 Style 对象中获得对齐和文本属性。
使用 symbol: URL 方案
ImageUrl 属性通常包含图像的 URL。但是,当 Image 控件检索 URL 时,它还检查是否存在向控件指示特定于设备信息的特定方案。此方案或前缀格式化文本指示控件生成特定的标记,该标记导致目标设备显示符合该方案的内置图像。
symbol: 方案(用作 ImageUrl 属性的值)是供 Image 控件查找指定的图像并在目标设备上显示该图像的指示信号。例如,在 i-mode 电话上,如果 ImageUrl 属性的值是 symbol:63726,则将其发出为 ,然后在目标设备上呈现为心形图标。
symbol: 方案在支持标志符号的 i-mode 电话和 WML 版本 1.1 电话上有效。
HTML 和 WML 的共性
在运行时,Image 控件通常生成一个 <img> 标记,其 src 属性设置为所选的 Choice 值。alt 属性被设置为替换文本(如果存在的话)。
如果指定了 NavigateUrl 属性,则该图像将被括在一个正确呈现的 <a> 标记(定位点)中。
Image 控件不在图像后呈现 <br> 标记(分行符)。这允许图像呈现在其他图像的旁边。但是,如果您要模拟分行符,则可以在图像后插入一个空 Label 控件。
如果设置了 Alignment 属性,则 Image 控件将 align 属性设置为该值。
注意 WML 设备具有不同的图像大小限制。在继续操作之前,查看您感兴趣的设备的说明。
示例
下面的示例提供三个替换图像,控件可根据设备特性从其中进行选择。当没有图像适用时,控件将选择替换文本。替换运行控件的图像的名称并将设备筛选器添加到您的 web.config 文件中。有关设备筛选器的更多信息,请参见特定于设备的呈现。
[Visual Basic, C#]
<%@ Page Inherits= "System.Web.UI.MobileControls.MobilePage" %>
<%@ Register TagPrefix="mobile"
Namespace="System.Web.UI.MobileControls"
Assembly="System.Web.Mobile" %>
<mobile:Form runat="server">
<mobile:Image runat="server" id="myImages" AlternateText=
"Sorry, this requested image cannot be displayed on this device.">
<deviceSpecific>
<choice Filter="IsColor"
ImageUrl="myColor.gif"/>
<choice Filter="Wml"
ImageUrl="myWMLImage.wbmp"/>
<choice ImageUrl="myColor.bmp"/>
</deviceSpecific>
</mobile:Image>
</mobile:Form>

