一, XAML代码头部说明:
<phone:PhoneApplicationPage
x:Class="myFirstApp.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:phone="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"
xmlns:shell="clr-namespace:Microsoft.Phone.Shell;assembly=Microsoft.Phone"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" d:DesignWidth="480" d:DesignHeight="768"
FontFamily="{StaticResource PhoneFontFamilyNormal}"
FontSize="{StaticResource PhoneFontSizeNormal}"
Foreground="{StaticResource PhoneForegroundBrush}"
SupportedOrientations="PortraitOrLandscape" Orientation="Portrait"
shell:SystemTray.IsVisible="True">
</phone:PhoneApplicationPage>
二,命名空间:
根元素中定义了两个最基本的命名空间
http://schemas.microsoft.com/winfx/2006/xaml/presentation
是核心Silverlight命名空间.它包含所有的Silverlight中的类,
包括Grid,StackPanel,TextBlock以及Button等。
通常,这个命名空间没有使用命名空间前缀来声明,
因此它就成了整个XAML文档的默认命名空间,
也就是说,除非你特别指明,每一个元素都会被自动放入这个命名空间中。
http://schemas.microsoft.com/winfx/2006/xaml
是XAML命名空间.它包含多种XAML功能,可以让你控制文档如何被解析.
这个命名空间通常会映射到x前缀.
上面两个命名空间基本上就可以让你访问Silverlight元素的核心库了。
不过如果你觉得不够,你还可以自定义命名空间,下面是自定义命名空间的语法.
语法:
xmlns:w="clr-namespace:Widgets;assembly=Widgets"
...
XML命名空间声明设定了3方面的信息:
1,XML命名空间前缀.不要与其它的命名空间前缀冲突。
2,.NET命名空间.在此例中.类被放置在Widgets命名空间中.
3,程序集.在此例中,所使用的类是Widgets.dll程序集的一部分。
假设你已经在Silverlight应用程序中添加了指向Widgets程序集的引用,
它将会被自动包含进最终的XAP包里。
一旦将.NET命名空间映射到XML命名空间,
你就可以在XAML文档的任何地方使用它。
三,生成类:
<UserControl x:Class="SilverlightApplication1.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" </UserControl>
1,前缀"x:"是标准XML缩写,它表示这个特定的属性是由命名空间中的xmlns:x属性所指定.
2,对于XAML编译器来说,x:Class属性就意味着需要生成基于XAML文件的类定义,
而x:Class属性就是决定所生成的类名字,并且将它派生自根元素.
在这里,所生成的类名为MainPage,它的基类为UserControl.
3,你不一定要指定一个x:Class属性.假如我们忽略这个示例中的属性,
那么根对象的类型将是UserControl,而不是生成的MainPage类.不过一般会指定这个属性.
4,在选择了生成一个类时,它会提供一个通过XAML描述的简便方法来创建对象树.
由于我们所生成的每一个MainPage实例都将包含一系列由XAML指定的对象,因此我们只需要使用普通的对象构造语法,如:
MainPage myMainPage=new MainPage();