XAML是Silverlight应用端采用的语言,在Asp.NET项目中,元素的声明、程序样式的设置和指定事件处理程序都和HTML非常类似,所以,做Silverlight项目的先决条件是要掌握XAML:
使用XAML标记可以创建可见的UI元素,并使用生成的对应的后台文件操作XAML声明的对象。XAML可以说是在XML的基础上加上了特有的属性元素语法以及内容元素语法,再加上它是.Net环境下的产物,所以它的特性可以描述为以下几点:
XAML是以XML为基础的语言扩展;
XAML必须是格式良好的XML;
XAML中的标记对应.Net Framework中的类型。
XAML具备面向对象及继承的特性;
XAML区分大小写;
XAML中能实现的,通过后台代码同样可以实现;
XAML中也创建元素树;
下面是一个使用XAML声明的TextBox元素:
结合XAML的特性从上述代码中可以看出平时写代码时容易出现的错误:
TextBox如果大小写错误,则声明失败
TextBox是Silverlight提供的控件模型,如果拼写错误,则会找不到对应.Net Framework中的类型,报错
x:Name好比HTML中的ID,具有唯一标识性
Margin好比CSS样式语法,控制该控件与周围各元素的间距
标签要求闭合,如果缺少则声明失败
学习XAML是个循序渐进的过程,首先要了解基础语法,才不会在编码中犯低级错误
Silverlight的控件模型
与Winform类似,Silverlight也拥有自身独有的一套控件模型。里面除了TextBox、Button、ComboBox这样的一些基本控件,还包括一些专门为RIA设计的控件,比如Silder、ProgressBar、TabControl。通过使用Silverlight Toolkit工具包,还可以拥有丰富的图表控件。按照控件的功能特性可以分为如下几类:
命令控件:响应来自鼠标、键盘、手写笔或其他输入设备的用户输入。如,Button、RepeatButton。
文本编辑控件:提供编辑或显示文本的控件。如,TextBox、Password。(刚刚发布的Silverlight4包含RichTextBox控件^_^)
选择控件:从多个预设值中选择。如,CheckBox、RadioButton。
列表控件:用于展示列表集合。
日期控件:Canlendar和DatePicker。
信息显示控件:显示少量文字或报告当前进度。TextBlock(好比是Label)、ProgressBar。
数据显示控件:DataGrid(这个以后会变成GridView么,呵呵)。
多媒体控件:用于显示图像、承载音频或视频。Image、MediaElement。
布局控件:Canvas、Grid控件。
所有控件类都是FrameworkElement的子类,我们可以通过XAML直接声明这些封装好的控件,也可以创建自己的用户控件。