目录
PageTurnDemo 应用程序
使用翻页框架
XAML 结构
框架内部
总结
两年前,我在雷蒙德的一条走廊里遇到了一个朋友。他说:“我有些东西你需要看看。 ”他打开他的便捷式计算机给我做了一个演示,这一演示给我带来了很大的震动。他演示是 SilverlightTM 早期版本的翻页示例(现在可通过 silverlight.net/samples/1.0/Page- Turn/default.html 查看)。
我无法相信自己的眼睛,因为该演示是在浏览器中运行的!更令人 吃惊的是,它不需要 Microsoft .NET Framework,不需要 Internet Explorer,并且相信总 有一天它会连也 Windows 也不再需要了。
PageTurn 是最典型的 Silverlight 1.0 演示。 如果希望初次接触 Silverlight 的人留下深刻印象,我总是会用到它。但是通过深入了解 PageTurn,您 会发现构建自己的翻页应用程序并非易事。PageTurn 依赖于转换、剪辑区域、动态创建的 XAML 对象等 功能,并且需要大量时间和精力(以及精通 Silverlight)才能理解源代码。它灵巧地展示了 Silverlight 的一些最丰富的功能,但它没有考虑到反复使用这一因素。
所以我构建了一个常用 翻页框架,它使将翻页功能集成到 Silverlight 1.0 应用程序中变得极为简单。通过借助此框架,仅使 用几行 JavaScript 就可构建整个应用程序。它不需要精通 Silverlight,并且由于整个框架包括约 500 行 JavaScript,,因此可深入了解其工作原理,而不必埋头苦读成千上万行代码。当然,您还可根据需要 进行修改。
PageTurnDemo 应用程序
在介绍此框架之前,让我们先来研究一个围绕它构建 的应用程序。通过使用图 1 中所示的 PageTurnDemo 应用程序,可翻阅 Microsoft Systems Journal( 现在称为《MSDN 杂志》)1988 年 11 月刊的前几页。(从杂志复制页面时如何避免出现版权问题 ?使用对应杂志的页面,并且使用自己撰写的文章,这是起码条件!)每个页面都是一个扫描图像,但其 中一个即最后一页使用可扩展应用程序标记语言 (XAML) 文本来覆盖图像。我还要强调:应用于框架的页 面不仅限于图像;对它的限制很少,可包含任意 XAML(包括 Image、TextBlock、MediaElement 等等) 。
图 1PageTurnDemo 显示部分翻开的页面
可通过下载源代码并从 Visual Studio 2008 将其启动 来运行此演示,或者可在 wintellect.com/silverlight/pageturndemo 中查看此演示。出现杂志封面后 (一个进度条会通知您下载进度,此下载会检索应用程序中使用的所有图像),按下鼠标左键在封面上从 右到左拖动来向前翻页。继续向左拖动右边页面会显示更多页面,从左向右拖动左边页面会向后翻页。
创建此示例的难度如何?除扫描、剪切、确定图像大小以及将它们打包到 ZIP 文件中外,根本就 不难。三个关键源代码文件(可在本专栏随附的下载中找到)为 HTML 文件、相关 JavaScript 文件以及 XAML 文件。除去使用 Silverlight 下载器对象来下载图像的代码,基本就没什么源代码了。实际上,仅 有大约 10 行是翻页功能专用的。