第一章 SilverLight介绍
现今的大多数图象是基于象素的,图象中的每个点都被表示为一个象素。在大多数情况下这是一个好
的解决方案,包括数字图象。但是他们也有缺点。比如,如图1.1所示,可以看到一个用Microsoft
Paint创建的简单文本。这个文本基于像素。在图1-2,你看到同样的文本。但此时图象的宽和高己经
被放大,你看到阶梯效果了吗?因此当将一个基于象素的图象放大时,损失了质量。
那很明显,当然,假设,一个100x100的象素图被重调尺寸到200x200像素,此时不是10000像素
。而是有40000像素。因而,在原图象中的1X1像素现在变为2x2像素。Paint使用了一个非常简单的
算法重调图象尺寸。如果图象变大了,只是简单的克隆像素。这将形成阶递效果。
专业的软件如Adobe PhotoShop带了几个相当有意义的算法,当重调图象大小时,使图象质量损失
减到最少。特别是当使图象变小时。然而,当变换图象尺寸时仍然有一些影响。
有一个可选择的方法:基于矢量的图象。图象中的每个元不是一个几何对象:一条线,一个圆,一个
多边形,一条曲线。主要的好处是当重调图像尺寸时,不会损失图象质量:圆只是变了他的宽度,那
就是全部,这里没有阶梯效果。它仍然是一个圆而不是其他的。不像一个象素图,是一些按圆形排列
的像素。
WPF
不久前,Microsoft的人坐下来为他们的Vista操作系统设计下一代的UI技术。(当然这个名字在以后
可能不同)。系统应该基于矢量和XML,最终被称为Windows Presentation Foundation(WPF).
有几个其他的项目也在试着使用XML创建矢量图象,最老的是W3C组织的矢量图象(SVG),SVG
图象被创建为使用XML,支持脚 本,且支持多大数现代浏览器,除了IE,然而。SVG没有成为市场主
流。仅在部分市场获得成功。包括移动电话和绘图方面。
其他相关的方法来自Adobe,Flex使用另外一种XML方言(称为MXML),动态创建FLASH内容。
WPF是.NET Framework3.0的一部分,默认被安装于Windows vista,且为XP和windows 2003
提供了附加的下载。.NET 3.0中包括的其他部分如下:
WCF(Windows Communication foundation):通信子系统。
WCS (Windows CardSpace)数字身份子系统。
WF(Windows WorkFlow Foundation):工作流子系统。
WPF应用程序可运行在浏览器或者是独立桌面应用程序。这两种情形都需要.NET Framework3.0或
其他更高的版本。当前,多数应用程是独立的。因为Vista并没有很高的市场份额,且.NET 3.0需要
下载。因此,Microsoft创建了一种类似的技术,目标为浏览器平台。称之为SilverLight。先看一看
WPF,以获取更多的背景信息。
WPF的主要焦点在于矢量图象,但是象素化的图象提供支持。WPF也支持来自音频或视频的多媒体内
容。一个显著的特性是支持文本。包括支持印刷特性的例如调整文字,字距和缩放。
所有的代码都可以使用.NET语言如C#和VB.NET来完成(在商业逻辑方面)。.NET Framework或
者准确一点,CLR在一个WPF应用程序中定义了每种可能类型的元素。允许一个在VS方面有开发经验
的人员快速创建应用程序。而且,提供了比XAML自身更多的API访问XAML。因此,为了掌握
好XAML/SilverLight,你需要自己熟悉标记和代码。
这里有几个WPF样版应用程序,包括几个“虚拟报纸”,用于呈现文本流。例如Forbers.com阅读器。
(见图1-4,下载地址http://www .forbes.com/partners/microsoft/newsreader/).下一
版yahoo。messenger将也有一个灵活的WPF界面特性。
XAML
需要知道,上一切提到的WPF内容不止是能使用XML创建。事实上,有一种特殊的格式(或XML方言
)用于那个目的:XAML(可扩展应用程序标记语言)。被用于WPF应用程序中的UI标记。WPF运行
时将解释这些标记,显示UI并且整合其他商业逻辑代码(如前所述,用.NET语言如C#或VB所写的代
码)。
微软也提供了几个工具开发XAML内容。可以使用VS,但是为了具有更多视觉体验,Express Blend
(Microsoft Expression Suite)一部分是一个有趣的选择。.NET Framework3.0也包括一个称为
XAMLPad的应用程序,该应用程序是是一个分割的视图,可以在同一时刻看到所有的XAML标记和实
际的WYSIWYG呈现,图1-5显示了XAMLPad行为。
当创建SilverLight内容时,你不必担心WPF,因为.NET Framework3.0中,开发或查看SilverLight
内容不是必须的。然而,你应该熟悉一些XAML,因为SilverLight支持XAML的一个子集用于创建UI
,因此,第4章将为你介绍Silverlight支持的更多重要的XAML元素。
更深的读物。
Programming WPF.