西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

首頁編程開發(fā)其它知識 → 快速掌握WPF XAML的基本概念和基本語法

快速掌握WPF XAML的基本概念和基本語法

相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2012/11/26 14:18:36字體大小:A-A+

作者:西西點(diǎn)擊:0次評論:0次標(biāo)簽: WPF

Actipro WPF Studiov11.1.0541 注冊版
  • 類型:編程控件大。58.9M語言:英文 評分:6.6
  • 標(biāo)簽:
立即下載

本篇從如下兩個方面學(xué)習(xí)WPF XAML:
1、基本概念
2、基本語法

一、基本概念
1、XAML是派生自XML的可擴(kuò)展應(yīng)用程序標(biāo)記語言(Extensible Application Markup Language)。微軟創(chuàng)造。應(yīng)用在WPF,WF,Silverlight,Metro App等開發(fā)技術(shù)中。
2、在WPF中,XAML用來開發(fā)用戶界面。繼承了XML的Tag,Attribute等語法。另有一些語法上的創(chuàng)新。
3、在WPF中,XAML運(yùn)行在CLR之上,但它不編譯為IL,而是編譯為BAML代碼,在運(yùn)行時會被解析成CLR類型(Types)。
4、WPF中XAML是大小寫敏感的。

二、基本語法
1、Tag語法=對象元素(Object Elements)
每個標(biāo)簽即是一個對象元素,將被解析為一個WPF Framework(主要來自PresentationFramework.dll)中的類的實(shí)例。下面的代碼就是一個對象元素,運(yùn)行時會被解析為一個Button對象實(shí)例。

<Button></Button>

或?qū)懗?/p>

<Button />

2、Attribute賦值語法

2.1 普通字符串賦值。下面代碼給Button的Property和Event賦值。字符串將被通過包裝好的TypeConverter來轉(zhuǎn)換成對象。TypeConverter使用C#的Attribute技術(shù)來實(shí)現(xiàn)的。

<Button Content="aaa" Click="Button_Click" />

2.2 標(biāo)記擴(kuò)展賦值。用花括號這種方式賦值就叫標(biāo)記擴(kuò)展賦值。常用的地方是在用到綁定和資源的時候。

<Button Command="{Binding Copy}" />

2.3 屬性元素賦值。有的時候簡單字符串賦值不了的,就用屬性元素賦值。

<Button>
    <Button.Content>aaa</Button.Content>                
</Button>

2.4 內(nèi)容賦值?丶蠧ontent這個屬性,也就是要繼承自ContentControl這個類,才能這么賦值。夾在標(biāo)簽中間。

<Button>aaa</Button>

2.5 集合賦值。下面例子是給StackPanel.Children這個屬性賦值一個集合,被省略了。這個屬性的類型是UIElementCollection。在這個例子,我們也看到WPF支持一些省略的寫法,在實(shí)際開發(fā)中運(yùn)用,可以使XAML代碼更簡潔。

<StackPanel>
    <Button>a</Button>
    <Button>b</Button>
</StackPanel>

3、命名空間。

一般用在Root元素上(Application,Window,UserControl,Page,ResourceDictionary等)。如下例子,xmlns為引入命名空間的attribute。第一行xmlns是沒有指定別名的,是默認(rèn)命名空間,它指定的命名空間包含了微軟提供所有的XAML控件的程序集。第二行xmlns別名是x,也是微軟提供的命名空間,這里面主要包含了一些關(guān)于解析Xaml語言的程序集。第三行xmlns是自己引入的,開發(fā)人員自己寫的控件等,可以通過命名空間這種方式引用到XAML文檔來使用。

<Window x:Class="WpfFirst.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:System;assembly=System"
        Title="MainWindow" Height="350" Width="525">    
</Window>

4、附加屬性,附加事件。

下面例子,Panel.ZIndex就是附加屬性,而附加事件是界面上用不了的。具體在寫屬性和事件時候討論。

<StackPanel>
  <Button Panel.ZIndex="1">a</Button>
  <Button Panel.ZIndex="2">b</Button>
</StackPanel>

5、樹。

XAML文檔是樹狀結(jié)構(gòu)的。在WPF中,有邏輯樹(Logical Tree)和可視樹(Visual Tree)的概念,在運(yùn)行時會維護(hù)這兩棵樹。邏輯樹是以我們看到的控件為節(jié)點(diǎn)的,這些控件一般繼承與FrameworkElement or FrameworkContentElement,而可視樹能看到控件內(nèi)部的元素,這些元素一般繼承自Visual類。WPF提供了兩個輔助類(LogicalTreeHelper and VisualTreeHelper)來操作這兩棵樹。

    相關(guān)評論

    閱讀本文后您有什么感想? 已有人給出評價!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評論

    最新評論

    發(fā)表評論 查看所有評論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)
    推薦文章

    沒有數(shù)據(jù)