【WPF學習】第一章 XAML介紹

   XAML(Extensible Application Markup Language的簡寫,發音爲「zammel」)是用於實例化.NET對象的標記語言。儘管XAML是一種應用於諸多不一樣問題領域的技術,但其主要做用是構造WPF用戶界面。換言之,XAML文檔定義了在WPF應用程序中組成窗口的面板、按鈕以及各類空間的佈局。瀏覽器

1、XAML變體

  實際上術語「XAML」有多種含義。到目前爲止,咱們使用XAML標識整個XAML語言,它是一種基於通用XML語法、專門用於表示一顆.NET對象樹的語言(這些對象能夠是窗口中的按鈕、文本框,或是已經定義好的自定義類。)佈局

  XAML還包含以下幾種:動畫

  • WPF XAML包含描述WPF內容的元素,如矢量圖形、控件以及文檔。目前,它是最重要的XAML應用。
  • XPS XAML是WPFXAML的一部分。它爲格式化的電子文檔定義了一種XML標識方式。XPS XAML已做爲單獨的XML頁面規範(XML Paper Specification ,XPS)標準發佈。
  • Silverlight XAML是一個用於Microsoft Silverlight應用程序的WPF XAML子集。Silverlight是一個跨平臺的瀏覽器插件,經過它可建立具備二維圖形、動畫、音頻和視頻的富Web內容。
  • WF XAML包含描述WF(work Flow,工做流)內容的元素。

2、XAML基礎

  一旦理解了一些基礎規則,XAML標準是很是簡單的:spa

  • XAML 文檔中的每一個元素都映射爲.NET類的一個實例。元素的名稱也徹底對應於類名。例如,元素<Button>指示WPF建立的Button對象。
  • 與全部XML文檔同樣,能夠在一個元素中嵌套另外一個元素。但嵌套一般是一種表示「包含」的方法——換句話說,若是在一個Grid元素中發現一個Button元素,那麼用戶界面可能包括一個在其內部包含的一個Button元素的Grid元素。
  • 可經過特性(attribute)設置每一個類的屬性(property)。但在某些狀況下,特性不足以完成這項工做。對於此類狀況,須要經過特殊的語法使用嵌套的標籤(tag)。

  使用VS2012建立一個WPF項目。默認生成主窗體的XAML代碼以下所示:插件

1 <Window x:Class="WpfApplication1.MainWindow"
2         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4         Title="MainWindow" Height="350" Width="525">
5     <Grid>
6         
7     </Grid>
8 </Window>

  該文檔僅包含兩個元素——頂級的Window元素以及一個Grid元素,Window元素表明整個窗口,在Grid元素中能夠放置全部控件。儘管可使用任何頂級元素,可是WPF應用程序只使用如下幾個元素做爲頂級元素:code

  • Window元素
  • Page元素(該元素和Window元素相似,但它用於可導航的應用程序)
  • Application元素(該元素定義應用程序資源和啓動設置)

  與在全部XML文檔中同樣,在XAML文檔中只能有一個頂級元素。在上例中,意味使用</Window>標籤關閉了Window元素,文檔就結束了。視頻

2.一、XAML名稱空間xml

  XAML解析器須要知道類位於哪一個.NET名稱空間。例如,在許多名稱空間中可能都有Window類——Windowm類多是指System.Windows.Window類,也多是指位於第三方組件中的Window類。爲了弄清實際上但願使用哪一個類,XAML解析器會檢查應用於元素的XML名稱空間。對象

   上面顯示的示例文檔定義了兩個名稱空間:blog

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

  xmlns特性是XML中的一個特殊特性,它專門用來聲明名稱空間,這段標記聲明瞭兩個名稱空間,在建立的全部WPF XAML文檔中都會使用這兩個名稱空間:

  • http://schemas.microsoft.com/winfx/2006/xaml/presentation是WPF核心名稱空間。它包含了全部WPF類,包括用來構建用戶界面的控件。在該例中,該名稱空間的聲明沒有使用名稱空間前綴,因此它成爲整個文檔的默認名稱空間。換句話說,除非另外指明,每一個元素自動位於這個名稱空間。
  • http://schemas.microsoft.com/winfx/2006/xaml 是XAML名稱空間。它包含各類XAML使用特性,這些特性可影響文檔的解釋方式。該名稱空間被映射爲前綴x。這意味着可經過在元素名稱以前放置名稱空間前綴x來使用該名稱空間(例如<x:ElementName>)。

2.2 代碼隱藏類

  可經過XAML構造用戶界面,但爲了使應用程序具備必定的功能,就須要用於鏈接包含應用程序代碼的事件處理程序的方法。XAML經過使用以下所示的Class特性簡化了這個問題:

<Window x:Class="WpfApplication1.MainWindow">

   在XAML名稱空間的Class特性以前放置了名稱空間前綴x,意味着這是XAML語言中更通用的部分。實際上,Class特性告訴XAML解析器用指定的名稱生成一個新類。該類繼承自由XML元素命名的類。換句話說,該實例建立了一個名爲MainWindow的新類,該類繼承自Window基類。

相關文章
相關標籤/搜索