所谓XAML是eXtensible Application Markup Language的英文缩写,相应的中文名称为可扩展应用程序标记语言,它是微软公司为构建应用程序用户界面而创建的一种新的描述性语言. 特别提醒,xaml中含有ML两个字,因此可以看出来他属于ML(mark Language)家族,这是微软专门绘制UI的语言,借助它可以把UI与运行逻辑分离开来。值得注意的是XAML仅仅是一种使用.NET API的方式,把它与HTML、可伸缩向量图形(SVG)或其他特定领域的格式或语言作比较是完全错误的。XAML由一些规则(告诉解析器和编译器如何处理XML)和一些关键字组成,但它自己没有任何有意义的元素。因此,如果在没有WPF这样的框架的基础上讨论XAML,就如同在没有.NET Framework的基础上讨论C#一样。
XAML使用标签定义UI元素,每一个标签对应.NET Framework类库的一个控件类。通过设置标签的Attribute,不仅可以对标签所对应的控件对象Property进行赋值,还可以声明名称空间,指定类名等。XAML在win8中扮演的角色通常是令人困惑的,因此第一件要搞清楚的事情是win8 app store应用和XAML可以独立使用,它们并不是互相依赖的。XAML最初是为WPF而设计,但它也可以应用于其他技术(如WF,windows phone7/8)。由于XAML的通用性,实际上可以把它应用于任何.NET技术。然而,是否在开发win8应用的时候使用XAML是可选的,(p.s.你也可以使用html,css,js进行布局)并且每一件XAML能做的事情完全可以由任何一种你喜欢的.NET语言来实现(但反过来则不行)。但是,由于XAML的诸多好处,很少会看到win8应用中使用别的布局却不使用XAML的情况。
(注:虽然xaml是微软通用的UI编写语言但是wpf所支持的xaml的类库是最完全的,而像silverlight是wpf支持的xaml的类库的子集。而windows phone中的xaml,win8中的xaml都是silverlight的子集。但还要注意的是wp与win8中的xaml ,互有交集,但并不完全相同,所以在学过别的版本的xaml的前提下,想横向的比较学习win8的xaml要注意支持的类库问题)
下面我举个例子展示xaml的应用开发通用性以及对于UI操作的方便,而具体语法下一篇博文会给大家介绍
<Button Content="Button" HorizontalAlignment="Left" Margin="152,87,0,0" VerticalAlignment="Top" Width="75"> <Button.RenderTransform> <RotateTransform Angle="80"/> </Button.RenderTransform> </Button>
这是在wpf中,拷贝上面的代码显示的样子
windows phone 中拷贝上面的代码显示的样子
win8中拷贝上面的代码显示的样子
silverlight中拷贝上面的代码显示的样子
怎么样是不是对xaml有一个直观的认识了,下一篇博文我将给大家介绍XAML的基本语法并做一个打地鼠的例子。