SixSix翻譯的XAML教程 語法簡介_Xml教程

      編輯Tag賺U幣

      推薦:用Asp與XML實現交互的一個實例源碼
      用Asp與XML實現交互的一個實例源碼

      [This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]
      XAML 語法簡介

      本文介紹了如何使用幾種不同的方法在XAML中創建對象和設置他們的屬性。

      主題包括以下幾個部分:
      什么是XAML?
      聲明對象
      設置屬性
      其他相關主題
      什么是XAML

      XAML是一種陳述性語言。你可以使用XAML標記創建可視化的UI原件。 之后,你可以在一個單獨的文件中使用JavasScript來操作你在XAML所聲明的對象、響應一些事件。作為一種以XML為基礎的陳述性語言,它創建界面時,從原型到產品的過程非常直觀,尤其是對于有網頁設計背景知識和技術的人。

      XAML文件通常是以.xaml為后綴的XML文件。下面是一個典型的Silverlight XAML文件例子。.XAML
      <Canvas
      xmlns="http://schemas.microsoft.com/client/2007"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
      <Rectangle
      Width="100"
      Height="100"
      Fill="Blue" />
      </Canvas>

      聲明對象

      在XAML中,有以下幾種方式聲明對象和設置它們的屬性::
      Object element syntax: 使用開放的和封閉的標簽來聲明對象,就像XML一樣。你可以使用這種方法來聲明根元素和設置它們的屬性值。
      Attribute syntax: 使用內嵌來聲明對象。你可以使用這種方法來設置一個屬性的值。.
      Object element syntax

      一種典型的使用Object element syntax來聲明對象的方法。.首先你要創建兩個XML元素標簽:
      <objectName>

      </objectName>


      ... objectName 是你想要實例化的對象的名字。下面的例子使用Object element syntax聲明一個Canvas。XAML
      <Canvas>
      </Canvas>


      一些對象, 比如Canvas, 可以包含其他對象。.XAML
      <Canvas>
      <Rectangle>
      </Rectangle>
      </Canvas>


      為了方便,如果一個對象里不包含其他對象,那么可以只使用一個標簽來描述它XAML
      <Canvas>
      <Rectangle />
      </Canvas>

      使用Attribute syntax聲明對象
      見下一部分, 設置屬性, 獲得更多有關attribute syntax的信息。
      設置屬性

      使用 object element syntax,你可以在聲明對象的時候設置它的屬性. 在XAML中,有幾種方法可以設置屬性: 使用 attribute syntax, 或使用 property element syntax.
      通過Attribute syntax設置屬性


      <objectNameproperty="propertyValue">

      </objectName>


      ... property 是屬性名稱,你會將propertyValue 的值賦到它的身上。 下面的例子展示了如何使用attribute syntax 來設置一個Rectangle的Width, Height, 和 Fill .XAML
      <Canvas>
      <Rectangle
      Width="100"Height="100"Fill="Blue" />
      </Canvas>



      使用 Property Element Syntax設置屬性

      一些屬性可以通過property element syntax來設置. 你通過創建XML elements來描述你想要的屬性, 例如:
      <objectName>

      <objectName.property>

      <propertyValue ... />

      </objectName.property>

      </objectName>


      ... property 是屬性名稱,你會將propertyValue 的值賦到它的身上. 下面的例子展示了如何使用 property element syntax 來設置一個Rectangle的Fill ,使用a SolidColorBrush.XAML
      <Canvas>
      <Rectangle
      Width="100"
      Height="100">
      <Rectangle.Fill>
      <SolidColorBrush />
      </Rectangle.Fill>
      </Rectangle>
      </Canvas>

      使用 Content Element Syntax設置屬性

      有時候,當一個屬性支持element syntax,你可以忽略屬性名,直接將屬性值內嵌在對象標簽里。這就是content element syntax. 下面的例子展示了怎樣不指定 Text 屬性,設置TextBlock的 Text 屬性值 。XAML
      <TextBlock>
      Hello!
      </TextBlock>

      使用 Implicit Collection Syntax設置屬性

      有時候, 一個屬性表現為一個集合, 你可以忽略集合名字,直接設置屬性值。這就是implicit collection syntax.。下面的例子展示了對于LinearGradientBrush 如何忽略GradientStopCollection ,以及直接指定 GradientStop 對象。 GradientStopCollection 包含在第一個LinearGradientBrush中,,但在第二個里被忽略了。XAML
      <Rectangle Width="100" Height="100"
      Canvas.Left="0" Canvas.Top="30">
      <Rectangle.Fill>
      <LinearGradientBrush>
      <LinearGradientBrush.GradientStops>

      <!-- Here the GradientStopCollection tag is specified. -->
      <GradientStopCollection>
      <GradientStop Offset="0.0" Color="Red" />
      <GradientStop Offset="1.0" Color="Blue" />
      </GradientStopCollection>
      </LinearGradientBrush.GradientStops>
      </LinearGradientBrush>
      </Rectangle.Fill>
      </Rectangle>



      <Rectangle Width="100" Height="100"
      Canvas.Left="100" Canvas.Top="30">
      <Rectangle.Fill>
      <LinearGradientBrush>
      <LinearGradientBrush.GradientStops>

      <!-- Notice that the GradientStopCollection tag
      is omitted. -->
      <GradientStop Offset="0.0" Color="Red" />
      <GradientStop Offset="1.0" Color="Blue" />
      </LinearGradientBrush.GradientStops>
      </LinearGradientBrush>
      </Rectangle.Fill>
      </Rectangle>


      有時你甚至可以同時忽略集合元素標簽和屬性元素標簽::XAML
      <Rectangle Width="100" Height="100"
      Canvas.Left="200" Canvas.Top="30">
      <Rectangle.Fill>
      <LinearGradientBrush>
      <GradientStop Offset="0.0" Color="Red" />
      <GradientStop Offset="1.0" Color="Blue" />
      </LinearGradientBrush>
      </Rectangle.Fill>
      </Rectangle>

      什么時候使用Attribute或Property Element Syntax設置屬性

      所有屬性都支持attribute 或property element syntax, 一些屬性支持其他方法. 設置屬性所支持的方法取決于屬性值所認可的對象類型。.
      如果屬性值是簡單類型, 比如 Double, Integer,String, 這種屬性只支持 attribute syntax . 下面的例子展示了如何使用 attribute syntax 設置Rectangle的Width.Width屬性支持Attribute syntax,因為他的屬性值是Double類型。 XAML
      <Rectangle Width="100" />

      是否可以使用attribute syntax取決于你使用于設置屬性的對象是否支持attribute syntax.下面的例子展示了使用 attribute syntax 設置一個Rectangle的 Fill屬性。在你使用SolidColorBrush去設置Fill屬性的時候,它是支持attribute syntax的,因為SolidColorBrush支持attribute syntax. XAML
      <Rectangle Fill="Blue" />

      是否能夠使用element syntax 設置屬性取決于你使用的對象是否支持。如果對象支持object element syntax,屬性才支持property element syntax 。下面的例子展示了使用property element syntax 設置一個Rectangle的Fill.當你使用SolidColrBrush設置Fill的時候,它是支持attribute syntax的,因為SolidColorBrush支持attribute syntax 。. XAML
      <Rectangle>
      <Rectangle.Fill>
      <SolidColorBrush />
      </Rectangle.Fill>
      </Rectangle>

      See Also
      Silverlight Object Models

      分享:asp下利用xml打包網站文件
      今天在網上找了下用xml打包文件、文件夾之類的內容看了看,在本機上調試了下,感覺還挺有用處

      來源:模板無憂//所屬分類:Xml教程/更新時間:2013-04-22
      相關Xml教程