文章詳情頁
SixSix翻譯的XAML教程 語法簡介
瀏覽:134日期:2022-06-04 14:12:35
[This topic is pre-release documentation and is subject to change in future releases. Blank topics are included as placeholders.]
XAML 語法簡介
本文介紹了如何使用幾種不同的方法在XAML中創(chuàng)建對(duì)象和設(shè)置他們的屬性。
主題包括以下幾個(gè)部分:
什么是XAML?
聲明對(duì)象
設(shè)置屬性
其他相關(guān)主題
什么是XAML
XAML是一種陳述性語言。你可以使用XAML標(biāo)記創(chuàng)建可視化的UI原件。 之后,你可以在一個(gè)單獨(dú)的文件中使用JavasScript來操作你在XAML所聲明的對(duì)象、響應(yīng)一些事件。作為一種以XML為基礎(chǔ)的陳述性語言,它創(chuàng)建界面時(shí),從原型到產(chǎn)品的過程非常直觀,尤其是對(duì)于有網(wǎng)頁設(shè)計(jì)背景知識(shí)和技術(shù)的人。
XAML文件通常是以.xaml為后綴的XML文件。下面是一個(gè)典型的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>
聲明對(duì)象
在XAML中,有以下幾種方式聲明對(duì)象和設(shè)置它們的屬性::
Object element syntax: 使用開放的和封閉的標(biāo)簽來聲明對(duì)象,就像XML一樣。你可以使用這種方法來聲明根元素和設(shè)置它們的屬性值。
Attribute syntax: 使用內(nèi)嵌來聲明對(duì)象。你可以使用這種方法來設(shè)置一個(gè)屬性的值。.
Object element syntax
一種典型的使用Object element syntax來聲明對(duì)象的方法。.首先你要?jiǎng)?chuàng)建兩個(gè)XML元素標(biāo)簽:
<objectName>
</objectName>
... objectName 是你想要實(shí)例化的對(duì)象的名字。下面的例子使用Object element syntax聲明一個(gè)Canvas。XAML
<Canvas>
</Canvas>
一些對(duì)象, 比如Canvas, 可以包含其他對(duì)象。.XAML
<Canvas>
<Rectangle>
</Rectangle>
</Canvas>
為了方便,如果一個(gè)對(duì)象里不包含其他對(duì)象,那么可以只使用一個(gè)標(biāo)簽來描述它XAML
<Canvas>
<Rectangle />
</Canvas>
使用Attribute syntax聲明對(duì)象
見下一部分, 設(shè)置屬性, 獲得更多有關(guān)attribute syntax的信息。
設(shè)置屬性
使用 object element syntax,你可以在聲明對(duì)象的時(shí)候設(shè)置它的屬性. 在XAML中,有幾種方法可以設(shè)置屬性: 使用 attribute syntax, 或使用 property element syntax.
通過Attribute syntax設(shè)置屬性
<objectNameproperty="propertyValue">
</objectName>
... property 是屬性名稱,你會(huì)將propertyValue 的值賦到它的身上。 下面的例子展示了如何使用attribute syntax 來設(shè)置一個(gè)Rectangle的Width, Height, 和 Fill .XAML
<Canvas>
<Rectangle
Width="100"Height="100"Fill="Blue" />
</Canvas>
使用 Property Element Syntax設(shè)置屬性
一些屬性可以通過property element syntax來設(shè)置. 你通過創(chuàng)建XML elements來描述你想要的屬性, 例如:
<objectName>
<objectName.property>
<propertyValue ... />
</objectName.property>
</objectName>
... property 是屬性名稱,你會(huì)將propertyValue 的值賦到它的身上. 下面的例子展示了如何使用 property element syntax 來設(shè)置一個(gè)Rectangle的Fill ,使用a SolidColorBrush.XAML
<Canvas>
<Rectangle
Width="100"
Height="100">
<Rectangle.Fill>
<SolidColorBrush />
</Rectangle.Fill>
</Rectangle>
</Canvas>
使用 Content Element Syntax設(shè)置屬性
有時(shí)候,當(dāng)一個(gè)屬性支持element syntax,你可以忽略屬性名,直接將屬性值內(nèi)嵌在對(duì)象標(biāo)簽里。這就是content element syntax. 下面的例子展示了怎樣不指定 Text 屬性,設(shè)置TextBlock的 Text 屬性值 。XAML
<TextBlock>
Hello!
</TextBlock>
使用 Implicit Collection Syntax設(shè)置屬性
有時(shí)候, 一個(gè)屬性表現(xiàn)為一個(gè)集合, 你可以忽略集合名字,直接設(shè)置屬性值。這就是implicit collection syntax.。下面的例子展示了對(duì)于LinearGradientBrush 如何忽略GradientStopCollection ,以及直接指定 GradientStop 對(duì)象。 GradientStopCollection 包含在第一個(gè)LinearGradientBrush中,,但在第二個(gè)里被忽略了。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>
有時(shí)你甚至可以同時(shí)忽略集合元素標(biāo)簽和屬性元素標(biāo)簽::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>
什么時(shí)候使用Attribute或Property Element Syntax設(shè)置屬性
所有屬性都支持attribute 或property element syntax, 一些屬性支持其他方法. 設(shè)置屬性所支持的方法取決于屬性值所認(rèn)可的對(duì)象類型。.
如果屬性值是簡單類型, 比如 Double, Integer,String, 這種屬性只支持 attribute syntax . 下面的例子展示了如何使用 attribute syntax 設(shè)置Rectangle的Width.Width屬性支持Attribute syntax,因?yàn)樗膶傩灾凳荄ouble類型。 XAML
<Rectangle Width="100" />
是否可以使用attribute syntax取決于你使用于設(shè)置屬性的對(duì)象是否支持attribute syntax.下面的例子展示了使用 attribute syntax 設(shè)置一個(gè)Rectangle的 Fill屬性。在你使用SolidColorBrush去設(shè)置Fill屬性的時(shí)候,它是支持attribute syntax的,因?yàn)镾olidColorBrush支持attribute syntax. XAML
<Rectangle Fill="Blue" />
是否能夠使用element syntax 設(shè)置屬性取決于你使用的對(duì)象是否支持。如果對(duì)象支持object element syntax,屬性才支持property element syntax 。下面的例子展示了使用property element syntax 設(shè)置一個(gè)Rectangle的Fill.當(dāng)你使用SolidColrBrush設(shè)置Fill的時(shí)候,它是支持attribute syntax的,因?yàn)镾olidColorBrush支持attribute syntax 。. XAML
<Rectangle>
<Rectangle.Fill>
<SolidColorBrush />
</Rectangle.Fill>
</Rectangle>
See Also
Silverlight Object Models
XAML 語法簡介
本文介紹了如何使用幾種不同的方法在XAML中創(chuàng)建對(duì)象和設(shè)置他們的屬性。
主題包括以下幾個(gè)部分:
什么是XAML?
聲明對(duì)象
設(shè)置屬性
其他相關(guān)主題
什么是XAML
XAML是一種陳述性語言。你可以使用XAML標(biāo)記創(chuàng)建可視化的UI原件。 之后,你可以在一個(gè)單獨(dú)的文件中使用JavasScript來操作你在XAML所聲明的對(duì)象、響應(yīng)一些事件。作為一種以XML為基礎(chǔ)的陳述性語言,它創(chuàng)建界面時(shí),從原型到產(chǎn)品的過程非常直觀,尤其是對(duì)于有網(wǎng)頁設(shè)計(jì)背景知識(shí)和技術(shù)的人。
XAML文件通常是以.xaml為后綴的XML文件。下面是一個(gè)典型的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>
聲明對(duì)象
在XAML中,有以下幾種方式聲明對(duì)象和設(shè)置它們的屬性::
Object element syntax: 使用開放的和封閉的標(biāo)簽來聲明對(duì)象,就像XML一樣。你可以使用這種方法來聲明根元素和設(shè)置它們的屬性值。
Attribute syntax: 使用內(nèi)嵌來聲明對(duì)象。你可以使用這種方法來設(shè)置一個(gè)屬性的值。.
Object element syntax
一種典型的使用Object element syntax來聲明對(duì)象的方法。.首先你要?jiǎng)?chuàng)建兩個(gè)XML元素標(biāo)簽:
<objectName>
</objectName>
... objectName 是你想要實(shí)例化的對(duì)象的名字。下面的例子使用Object element syntax聲明一個(gè)Canvas。XAML
<Canvas>
</Canvas>
一些對(duì)象, 比如Canvas, 可以包含其他對(duì)象。.XAML
<Canvas>
<Rectangle>
</Rectangle>
</Canvas>
為了方便,如果一個(gè)對(duì)象里不包含其他對(duì)象,那么可以只使用一個(gè)標(biāo)簽來描述它XAML
<Canvas>
<Rectangle />
</Canvas>
使用Attribute syntax聲明對(duì)象
見下一部分, 設(shè)置屬性, 獲得更多有關(guān)attribute syntax的信息。
設(shè)置屬性
使用 object element syntax,你可以在聲明對(duì)象的時(shí)候設(shè)置它的屬性. 在XAML中,有幾種方法可以設(shè)置屬性: 使用 attribute syntax, 或使用 property element syntax.
通過Attribute syntax設(shè)置屬性
<objectNameproperty="propertyValue">
</objectName>
... property 是屬性名稱,你會(huì)將propertyValue 的值賦到它的身上。 下面的例子展示了如何使用attribute syntax 來設(shè)置一個(gè)Rectangle的Width, Height, 和 Fill .XAML
<Canvas>
<Rectangle
Width="100"Height="100"Fill="Blue" />
</Canvas>
使用 Property Element Syntax設(shè)置屬性
一些屬性可以通過property element syntax來設(shè)置. 你通過創(chuàng)建XML elements來描述你想要的屬性, 例如:
<objectName>
<objectName.property>
<propertyValue ... />
</objectName.property>
</objectName>
... property 是屬性名稱,你會(huì)將propertyValue 的值賦到它的身上. 下面的例子展示了如何使用 property element syntax 來設(shè)置一個(gè)Rectangle的Fill ,使用a SolidColorBrush.XAML
<Canvas>
<Rectangle
Width="100"
Height="100">
<Rectangle.Fill>
<SolidColorBrush />
</Rectangle.Fill>
</Rectangle>
</Canvas>
使用 Content Element Syntax設(shè)置屬性
有時(shí)候,當(dāng)一個(gè)屬性支持element syntax,你可以忽略屬性名,直接將屬性值內(nèi)嵌在對(duì)象標(biāo)簽里。這就是content element syntax. 下面的例子展示了怎樣不指定 Text 屬性,設(shè)置TextBlock的 Text 屬性值 。XAML
<TextBlock>
Hello!
</TextBlock>
使用 Implicit Collection Syntax設(shè)置屬性
有時(shí)候, 一個(gè)屬性表現(xiàn)為一個(gè)集合, 你可以忽略集合名字,直接設(shè)置屬性值。這就是implicit collection syntax.。下面的例子展示了對(duì)于LinearGradientBrush 如何忽略GradientStopCollection ,以及直接指定 GradientStop 對(duì)象。 GradientStopCollection 包含在第一個(gè)LinearGradientBrush中,,但在第二個(gè)里被忽略了。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>
有時(shí)你甚至可以同時(shí)忽略集合元素標(biāo)簽和屬性元素標(biāo)簽::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>
什么時(shí)候使用Attribute或Property Element Syntax設(shè)置屬性
所有屬性都支持attribute 或property element syntax, 一些屬性支持其他方法. 設(shè)置屬性所支持的方法取決于屬性值所認(rèn)可的對(duì)象類型。.
如果屬性值是簡單類型, 比如 Double, Integer,String, 這種屬性只支持 attribute syntax . 下面的例子展示了如何使用 attribute syntax 設(shè)置Rectangle的Width.Width屬性支持Attribute syntax,因?yàn)樗膶傩灾凳荄ouble類型。 XAML
<Rectangle Width="100" />
是否可以使用attribute syntax取決于你使用于設(shè)置屬性的對(duì)象是否支持attribute syntax.下面的例子展示了使用 attribute syntax 設(shè)置一個(gè)Rectangle的 Fill屬性。在你使用SolidColorBrush去設(shè)置Fill屬性的時(shí)候,它是支持attribute syntax的,因?yàn)镾olidColorBrush支持attribute syntax. XAML
<Rectangle Fill="Blue" />
是否能夠使用element syntax 設(shè)置屬性取決于你使用的對(duì)象是否支持。如果對(duì)象支持object element syntax,屬性才支持property element syntax 。下面的例子展示了使用property element syntax 設(shè)置一個(gè)Rectangle的Fill.當(dāng)你使用SolidColrBrush設(shè)置Fill的時(shí)候,它是支持attribute syntax的,因?yàn)镾olidColorBrush支持attribute syntax 。. XAML
<Rectangle>
<Rectangle.Fill>
<SolidColorBrush />
</Rectangle.Fill>
</Rectangle>
See Also
Silverlight Object Models
標(biāo)簽:
XML/RSS
相關(guān)文章:
排行榜
