C#窗體WPF學習

在學習之前一定要懂得XML,如果不懂的話可以參閱http://www.w3school.com.cn/xml/index.asp網址上的基於WEB的免費指導。

**
在學習之前,先看一段XAML文檔的基本框架,該文檔表示一個新的空白窗口(和使用Visual Studio創建的一樣)。

**<Window x:Class="EightBall.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Eight Ball Answer" Height="328" Width="412" >
  <Grid>

  </Grid>
</Window>**

這段代碼裏面包含兩個元素,頂級的Window元素,以及一個Grid的元素,Windos元素代碼表整個窗體,在Gird元素中可以放置所有控件。儘管可以使用任何元素爲頂級元素,但是WPF應用程序只是用以下幾個元素作爲頂級元素:

  • Windows元素

  • Page 元素(該元素和Windows元素類似,但是它用於可導航的應用程序)

  • Application元素(該元素定義應用程序資源和啓動設置)
    與在所有的XML文檔中一樣,在XAML文檔中只有一個頂級元素,在上面代碼裏面,只要使用標籤關閉了Window元素,整個文檔就結束了,在後面不能再有任何內容了。
    這段代碼裏面,從第一行Window標籤開始還包括:類名和兩個XML名稱空間,一個標題Title。
    Title=“Eight Ball Answer” Height=“328” Width=“412” > 創建一個標題,並且使窗體大小爲328*412像素。

    通過XAML構造界面,爲了使應用程序具有一定的功能,需要一個連接包含程序的事件處理處理程序的方法。
    <Window x:Class=“EightBall.Window1”
    顯然,光有這個類名是不夠.XAML解析器還需要知道類位於哪個名稱空間。
    例如:
    在許多名稱空間中可能都有Window類,——Windos類可能是指System.Windows.Window類,也可能是指位於第三方組件中的Window類,或者是自己在應用程序中定義的Window類等。爲了弄清楚實際上希望使用哪個類,XAML解析器會檢查應用於元素的XML名稱空間。
    下面這一機制的工作原理。上面顯示的代碼定義了兩個命名空間:
    xmlns=“http://schemas.microsoft.com/winfx/2006/xaml/presentation
    xmlns:x=“http://schemas.microsoft.com/winfx/2006/xaml

| 注意:| XML名稱空間使用特性聲明。這些特性能夠被放入到任何元素的開始標籤中。但是,約定要求在文檔中需要使用的所有名稱空間應當在第一個標籤中聲明,正如在這個代碼中所做那樣。一旦聲明瞭一個明明空間,在文檔任何地方都可以使用改名空間。|

xmlns特性是XML中的一個特殊的特性,它專門用於聲明名稱空間。這段標籤聲明兩個名稱空間,在創建的所有WPF XAML文檔中都會使用這兩個名稱空間:
http://schemas.microsoft.com/winfx/2006/xaml/presentation 是WPF核心名稱空間。它包含了所有WPF類,包括用於構建界面的控件。在這個標籤中,該名稱空間的聲明沒有使用名稱前綴,所以它成爲整個文檔的默認名稱空間。換就話說,除非另行指明,每個元素自動位於中這個名稱空間。

   xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  是XAML名稱空間。包含各種XAML實用特性,這些特性會影響文檔的解釋方式。
   這個名稱空間被映射爲前綴x。這意味着可以通過在元素名稱之前放置一個名稱空間前綴來使用這個名稱空間(x:ElementName)。

在XAML名稱空間的Class特性之前放置了名稱空間前綴x,意味着這是XAML語言中更通用的部分。實際上,Class特性告訴XAML解析器使用指定的名稱生成一個新類, 該類繼承自由XML元素命名的類。換句話說,這個<Window x:Class=“EightBall.Window1” 標籤創建了一個名爲Window1的新類,該類繼承自Window基類。
Window1類是在編譯時自動生成。 這正是問題的關鍵所在。
Visual Studio 會自動創建一個科院放置時間處理代碼的部分類。例如,如果創建一個名爲WinowsApplication1的應用程序,該應用程序包含一個名爲Window1的窗口,Visual Studio將首先提供一個基本的類框架:

namespace WindowsApplication1
{
		public partial class Window1 : Window
		{
			public Window1()
			{
					InitializeComponent();		
			}
		}
}

當編譯應用程序時,定義界面的XAML(Window1.xaml)被轉換位CLR類型聲明,這些類型聲明和代碼隱藏類文件(Window1.xaml.cs)中的邏輯代碼融合到一起,形成單一的單元。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章