WPF 10天修煉 次日- XAML語言

XAML是什麼express

  XAML是一種與.NET CLR緊密集成的聲明性UI標記語言。XAML中的對象元素對應到CLR中的類型或結構。XAML命名空間對應到CLR中類的命名空間,元素類型則對應到CLR中的類型。XAML是xml的子集,所以嚴格遵循XML的語法規範。spa

 

新建一個WPF空項目,下面是默認生成的XAML結構.net

<Window x:Class="WpfApplication1.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        Title="MainWindow">

    <Grid>
       

    </Grid>

</Window>

 

XAML代碼組成:orm

一、  一個根元素<Window>和</window>標記。在XAML中,必須有且只能有一個根元素xml

二、  緊接着根元素的XML命名空間的聲明。在每一個XAML文件中必需要具備兩個命名空間對象

  xmlns=http://schemas.microsoft.com/winfx/2006/xaml/presentation 表示WPF命名空間,也就是XAML元素對應到CLR類的命名空間。blog

  xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml 表示XAML文件自己的命名空間,語法是xmlns:x,這個是x是命名的前綴能夠是任意的字符。若是咱們須要導入一些自定義的命名空間,那麼咱們就須要加上「:+自定義的形式」,這裏微軟導入了一個自定義的命名空間。繼承

  使用其它命名空間的類型語法:事件

  xmlns:Prefix="clr-namespace:Namespace;assembly=AssemblyName"文檔

  Prefix:用戶指定但願在XAML文檔中使用的命名空間的前綴,相似於XAML命名空間使用的x:前綴,能夠指定任意的字符串。

  Namespace:是完整的.net命名空間名

  AssemblyName:程序集名稱,不用指定.DLL擴展名。這個程序集必須被當前的WPF項目所引用。

三、下面是<Grid>標記,表明XAML文件的UI內容。

  

代碼後置文件

         使用項目模板建立一個窗體或頁面時,VS會自動生成一個相應XAML文件擴展名在再加上.cs的代碼後置文件。XMLA中經過使用x:class 語法關聯到一個特定的後置類。

X:Class後置類指定爲WpfApplication1.MainWindow,能夠打開後置代碼文件,看到一個名爲WpfApplication1的命名空間,有一個MainWindow的類。X:class告訴XAML解析器,使用指定的名稱來產生一個新的類,這個類派生自XAML跟元素類。所以在代碼後置文件中能夠看到MainWindow類繼承自Window類。代碼以下:

 namespace WpfApplication1

{

    public partial class MainWindow : Window

    {

        public MainWindow()

        {

            InitializeComponent();

        }

    }

}

 

特定的字符和空白

XAML嚴格遵循XML語法規範,在XML中,對特定的字符,好比& < > 等須要進行特殊處理,因此在XAML中也須要使用特定的代碼來替換這些字符。

小於符號<:&lt;    <Button Content="小於號:&lt;"></Button>

大於符號>:&gl    <Button Content="大於號:&gt;"></Button>

And符合&:&amp;  <Button Content="And符號:&amp;"></Button>

引號」」:&quot;     <Button Content="引號:&quot;"></Button>

 

在XAML中使用事件 

XAML代碼中事件的聲明一般使用事件名=」事件處理方法名」,而且在後置代碼中對指定的方法提供聲明和實現。

XAML代碼

<Window x:Class="WPFDemo.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

        xmlns:local="clr-namespace:WPFDemo"

        mc:Ignorable="d"

        Title="MainWindow" Height="350" Width="525">

    <StackPanel >

        <!---定義按鈕樣式-->

        <StackPanel.Resources>

            <Style TargetType="{x:Type Button}">

                <Setter Property="Height" Value="50"></Setter>

                <Setter Property="Width" Value="200"></Setter>

                <Setter Property="HorizontalAlignment" Value="Left"></Setter>

            </Style>

        </StackPanel.Resources>

        <Button Content="點擊我試試" Name="button1" Click="button1_Click"></Button>

</StackPanel>

</Window>

 

後置代碼:

private void button1_Click(object sender, RoutedEventArgs e)

 {

  MessageBox.Show("我是單擊事件");

}

相關文章
相關標籤/搜索