Xaml語法概述
1.命名空間
xmal每一個元素都對應着一個類,可是在xmal中,只提供類名是不夠的,須要知道該類實在.net的哪一個命名空間下面.Xaml解析器纔可以正確的解析.express
1 <Page 2 x:Class="App1.MainPage" 3 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 4 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 5 xmlns:local="using:App1" 6 xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 7 xmlns:mc="http://schemas.openxmlformats.org/markup- 8 9 compatibility/2006" 10 mc:Ignorable="d" 11 Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 12 13 <Grid x:Name="RootLayout"> 14 15 </Grid> 16 </Page>
上面代碼兩個特殊的命名空間,該命名空間會在全部的xmal文檔中都有
A:xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
B: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
A是WP的核心命名空間,包含了大部分用來構建界面的控件類.該命名空間的聲明沒有使用任何命名空間的前綴,因此它是整個文檔的默認命名空間,因此沒有前綴的元素都自動位於該命名空間下.
?:何爲命名空間前綴
B是Xaml的命名空間,它包含Xmal的實用特性,這些特性影響文檔的解釋方式,這個命名空間具備映射前綴x,即,能夠經過在元素名稱以前放置命名空間前綴,來使用
該命名空間,x:Name="RootLayout"
2.對象元素
xmal文檔中 每個 自閉合 或者 成對閉合的 標籤都是一個對象
c#
<Grid></Grid> <Button/>
3.設置屬性
xmal中的屬性設置,有多種語法,可是並不是所有都的屬性設置都是通用的
a.使用屬性語法ide
<Rectangle Name="Rectag" Height="100" Width="100" Fill="Blue" HorizontalAlignment="Left"/>
b.使用屬性元素語法
對象.屬性. 屬性語法的前提 該屬性必須也要是Xaml 的一個對象元素spa
<Rectangle Name="Rec2" Height="100" Width="100" HorizontalAlignment="Left"> <Rectangle.Fill> <SolidColorBrush Color="Yellow"> </SolidColorBrush> </Rectangle.Fill> </Rectangle>
c.使用內容元素語法.net
<Border> <Button Content="Button"/> </Border>
這種語法 給Border 對象設置了Child屬性 也就是說 咱們能夠直接寫出一個對象
來賦值另個對象的某些屬性,可是隻有特別的一些屬性能夠用這種內容元素語法,
好比元素的Child屬性,Content屬性
d.使用集合語法
若是屬性的值是一個集合,就須要用集合語法去設置該屬性
c# add方法能夠添加的屬性集合code
<Rectangle Width="200" Height="150"> <Rectangle.Fill> <LinearGradientBrush> <GradientStopCollection> <GradientStop Offset="0.0" Color="Coral"></GradientStop> <GradientStop Offset="1.0" Color="Green"></GradientStop> </GradientStopCollection> </LinearGradientBrush> </Rectangle.Fill> </Rectangle>
有些屬性 既是集合屬性 又是內容屬性
4.附加屬性orm
<Canvas> <Button Canvas.Left="50" Content="0.0"></Button> </Canvas>
又叫作依賴屬性 button 對象原本是沒有Left屬性的 ,可是該對象 放在Canvas布
局中 ,有了Canvas 的附加屬性來設置 該對象在Canvas中的位置,即 全部Canvas
下面的對象 能夠設置該屬性的對象 都會有該依賴屬性.
5.標記擴展
xml
<StackPanel> <TextBlock Text="{Binding Source={StaticResource my},Path=Per}"></TextBlock> </StackPanel>
Binding(綁定)
StaticResource靜態資源
TemplateBinding(模板綁定)
RelativeSource綁定關聯源
對象