WindowsPhone XAML語法詳解

jopen 12年前發布 | 1K 次閱讀 禪道項目管理軟件 項目管理

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

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

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!