1 实现帮助
实现帮助内容对应用程序开发来说是一项关键步骤,但经常被拖延到开发的后期再进行。虽然如何写帮助内容不在本书所讨论的范围之内,但我们必须指出,保持内容的简洁,并合理地将内容拆分成简短的主题,以便适应滚动的需要,相当重要。由于屏幕空间有限,不宜阅读大量文字。不仅如此,相比桌面上的Microsoft Windows操作系统,设备上的搜索与导航功能也是有限的。如图1.1
图1.1帮助视图
1.1.1 创建基于html的帮助
自Windows Embedded Compact 7第一个版本开始,这个平台就支持基于超文本标记语言(HTML)的帮助引擎。Windows Embedded Compact 7也使用了相同的技术。不像在桌面上,设备帮助只能在“开始”菜单中打开。当窗体可见时,用户可以在“开始”菜单中,通过点选来打开特定的帮助主题。如果您未实现这个功能,显示的将是系统帮助内容。不管怎样,由于帮助格式为对标准HTML的拓展,虽然添加了一些标记,但用任何常规的Web页面编辑软件都可以创建帮助内容。这个引擎支持的标签与Microsoft Internet Explorer Embedded所支持的完全相同。
每个帮助文件是一个单独的.htm文件,它可以包含若干帮助主题。通过标准的HTML锚(anchor)便可以在一个文件中的不同主题间进行链接。锚必须包含在文件中来指明目录的位置——帮助引擎通过这个锚提供到内容部分的永久链接,如下所示:
<A NAME="Main_Contents"></A>
目录本身只是包含在文档中链接到不同主题的超链接(hyperlink)列表。有一个特殊的标签放在页首,以提示帮助程序哪个主题用于呈现目录。这个标记必须与页面中目录的锚名吻合;否则,帮助程序会显示错误,提示无法找到帮助文件。
<meta http-equiv="Htm-Help" content="kiosk.htm#Main_Contents"/>
在HTML文件中,每个帮助页都由一个特殊的注释标记分隔。这个注释标记名称来源于Windows Embedded Compact 7 1.0,它的代号为Pegasus(神马),这样PegHelp应运而生:
<!-- PegHelp --><hr/>
由于这是一个注释标记,因此它仍然是有效的HTML,可以在任何浏览器中显示;它指示Windows Embedded Compact 7“帮助”程序,主题的开始与结束,保证每个主题能够显示在一个独立的页面中。后面的水平标尺(horizontal rule)标记是可选的,这更利于桌面上查看这个 文件。
帮助文件可以包含关键字的定义,内建的搜索程序可以使用它来查找其中的主题。这些关键字的定义应采用如下形式,并在<HEAD>节中指定:
<keyword value="kiosk;screen"
title="Kiosk Settings"
href="Kiosk.htm#kiosk" />
这里的value属性是一个用分号隔开的关键字列表,在此例中,我们将关键字kiosk 和screen与这个主题联系在一起。title属性存储了对特定主题的描述,且会显示给用户。最后的href指定了到帮助主题的链接。注意,“#”用于提示指向文档中某个已命名的锚。由于帮助引擎不会处理相对路径,因此,按照习惯,应将.htm文件放在设备的Windows文件夹下。
Windows Embedded Compact 7的帮助内容还有一点需要注意。与Internet Explorer Mobile一样,这里也广泛支持各种HTML标记。但有一个令人诧异的限制,即只能使用位图(bitmap image),它必须在<IMG>标记中指定其绝对路径。这实际上意味着,帮助文件与相关图片通常都要部署到设备的Windows文件夹下。下面是完整的帮助文件内容。如图1.2
图1.2帮助视图
<html>
<head>
<title>Kiosk Sample</title>
<LINK rel="stylesheet" type="text/css" href="file://\Windows\DeviceHelp.css" />
<meta http-equiv="Htm-Help" content="kiosk.htm#Main_Contents"/>
<keyword title="Kiosk Mode" value="Kiosk;Fullscreen" href="kiosk.htm#kiosk"/>
<keyword title="Hardware Buttons" value="Hardware;Button" href="kiosk.htm#buttons"/>
<keyword title="Help Links" value="Help;Context" href="kiosk.htm#help"/>
</head>
<body><!-- PegHelp -->
<a name="Main_Contents"></a><h1>Table of Contents</h1>
<p><a href="kiosk.htm#kiosk">Kiosk Mode</a></p>
<p><a href="kiosk.htm#buttons">Hardware Buttons</a></p>
<p><a href="kiosk.htm#help">Help Links</a></p>
<!-- PegHelp --><hr/>
<a name="kiosk"></a><h1 class="dtH1">Kiosk Mode</h1>
<p>SHFullScreen is used to enable/disable various user interface features such as the start menu.</p>
<ol>