由于名称的关系, WPF与WPF/E一直被认为是类似的东西.其实两者除了呈现UI的部分使用的是共同语言XAML之外,两者在本质上有很大的不同. 甚至,XAML对WPF与Silverlight有不同的意义,也不能算是两者间"共同的语言".
XAML对WPF来说,是一种把.NET程序语言改用XML来描述的方式.换句话说,XAML用在WPF上,像是另外一种程序语言.与C#, VB ,IronPython相似.所以XAML能做的, C# , VB一样都可以做到. 但是反过来, C# ,VB 能做的,XAML不一定能做到,因为XAML是为了配合开发工具,特别设计出来的一种语言,本身有它的局限性,所以还是得配合正规的程序语言,才能完成一个真正有用的程序. 但是以目前XAML所具备的能力,不靠C# , VB而做到平常简单Flash可以做到的,应该是没啥问题.因此, Application = Code + Markup的作者Petzold才会把这本书的结构写成先用以C#来写WPF程序,后半部才介绍XAML. 避免大家误解 WPF = XAML. XAML还可以用在WF上,所以并不局限于WPF. 如果用了XAML,以为这就是WPF的全部,就大错特错啰! 然而,XAML对Silverlight来说,本质比较贴近SVG. XAML用来描述构成画面的结构树,然后配合Javascript去操作这颗表示UI的树,以达到互动的效果. 所以对Silverlight来说, XAML像是用来扩充HTML/CSS原本不足的一组Tag. 就像Firefox之中,一样可以用Javascript去操作SVG所描述的画面,达到表现多媒体的效果.