WindowsPhone XAML语法详解

13年前
XAML 是一种声明性标记语言。XAML 简化了为 .NET Framework 应用程序创建 UI 的过程。您可以在声明性 XAML 标记中创建可见的 UI 元素,然后使用代码隐藏文件(通过分部类定义与标记相连接)将 UI 定义与运行时逻辑相分离。XAML 直接以程序集中定义的一组特定后备类型表示对象的实例化。 XAML 实现了一个工作流,通过此工作流,各方可以采用不同的工具来处理应用程序的 UI 和逻辑。

以文本表示时,XAML 文件是通常具有 .xaml 扩展名的 XML 文件。 可通过任何 XML 编码对文件进行编码,但通常编码为 UTF-8。

特点:

1.         具有 .xaml 扩展名的 XML 文件,格式和XML一样

2.         在XAML中定义的元素其实是程序集中定义的类型对象

 

语法:

属性语法

对象的属性通常可表示为对象元素的特性。属性语法命名在属性语法中设置的属性,后跟赋值运算符 (=)。属性的值始终以包含在引号中的字符串的形式进行指定。

属性语法是最简单有效的属性设置语法,并且对于曾使用过标记语言的开发人员而言在使用中是最直观的语法。例如,以下标记将创建一个具有红色文本和蓝色背景的按钮,还将创建指定为 Content 的显示文本。

<Button Background="Blue" Foreground="Red" Content="This is a button"/>

属性对象元素语法

对于对象元素的某些属性,属性语法是不可能实现的,因为无法在属性语法的引号和字符串限制内充分地表达提供属性值所必需的对象或信息。对于这些情况,可以使用另一个语法,即属性对象元素语法。

属性元素对象开始标记的语法为 <类型名称.属性名称>。 通常,该标记的内容是类型的一个对象元素,属性会将该元素作为其值。指定内容之后,必须用一个结束标记结束属性元素。结束标记的语法为 </类型名称.属性名称>。

<Button>

  <Button.Background>

    <SolidColorBrush Color="Blue"/>

  </Button.Background>

  <Button.Foreground>

    <SolidColorBrush Color="Red"/>

  </Button.Foreground>

  <Button.Content>

    This is a button

  </Button.Content>

</Button>

 

内容属性

如果一个类的内容属性为该类中的唯一一个内容属性,对象元素的子元素可以用于设置该内容属性的值。换言之,仅对内容属性而言,您可以在 XAML 标记中设置该属性时省略属性元素,并在标记中生成更直观的父级/子级形式。

<Border>

  <TextBox Width="300"/>

</Border>

当然,你也可以显示的的标明,设置了元素的内容属性为子元素。

<Border>

  <Border.Child>

    <TextBox Width="300"/>

  </Border.Child>

</Border>

 

集合语法

XAML 语言包含一些优化,可以生成可读性更好的标记。其中的一项优化是:如果某个特定属性采用集合类型,则您在标记中声明为该属性的值内的子元素的项将成为集合的一部分。在这种情况下,子对象元素的集合是设置为集合属性的值。

下面的示例演示为 GradientStops 属性设置值的集合语法:

<LinearGradientBrush>

  <LinearGradientBrush.GradientStops>

    <GradientStop Offset="0.0" Color="Red" />

    <GradientStop Offset="1.0" Color="Blue" />

  </LinearGradientBrush.GradientStops>

</LinearGradientBrush>

 

 

++++++++++++++++++++++++++++++++++++++++++

本文系本站原创,欢迎转载! 转载请注明出处:

http://blog.csdn.net/mr_raptor/article/details/7227260

++++++++++++++++++++++++++++++++++++++++++