新開一節WPF桌面開發的講解,這節先初步認識一下什么是WPF。
1.簡介
WPF是 Windows Presentation Foundation 的英文縮寫,意為“窗體呈現基礎”,是微軟基於.NET Framework 3.0 推出的新一代構建窗體程序的框架。不同於WinForm,WPF實現了界面和開發分離,它的界面是由Xaml語言構建的,這種形式對前端開發人員非常友好,使初步進入WPF頁面開發的前端開發人員可以很輕松的上手並開發出絢麗的界面(並且還有一個UI編輯利器:VS Blend來輔助界面的開發)。另外,WPF還具有強大的圖形繪制功能,以及自帶MVVM框架,有關MVVM相關的知識點會在后續的文章中發布。
目前,WPF廣泛應用於各種桌面應用程序的開發中,VisualStudio也是基於WPF開發的,未來隨着IOT的興起,WPF有着很廣泛的前景。
2.初探代碼
打開VS,我們搜索WPF,新建一個WPF項目:

搜索WPF會出現很多相關選項,主要是底層框架(.NET Framework,.NET Core,.NET)的不同,這里我們選擇WPF App(.NET Framework)這一個項目為例。

一般開發中,如果考慮到客戶的Windows版本不同,應該視情況降低框架版本(就像一些客戶甚至還在用XP,XP系統就無法安裝4.x的.NET Framework),此處我們默認選擇4.7.2就好。
建好項目后,我們可以在解決方案瀏覽器中看到如下結構:

Properties存着一些底層的屬性文件,如程序集信息,資源表等;
References用於添加項目依賴包;
App.config用於存儲一些配置信息,在程序運行時可以動態的讀取這些信息;
App.xaml是整個項目的xmal文件,熟悉asp.net core的同學可以將這個文件理解為View/share文件夾下的_layout文件,在這個文件中編寫的一些邏輯會應用到整個程序中,而且與WinForm不同的是,項目的啟動頁面是在這樣文件中配置,就是下圖所示的StartupUri屬性:

MainWindow.xaml文件就是一個單純的WPF窗體界面,我們可以將其展開,就成了一個.xaml文件和.cs文件:

我們先打開MainWindow.xaml,初始代碼如下:

這種結構,很形象的解釋了各種控件的包含關系,我們所有的代碼都要寫在Window中。
Window標簽有一些屬性下面來解釋一下:
x:Class 類名,指示跟哪個類綁定;
xmlns 屬於當前頁面的命名空間,用於引入一些用到的代碼,如外部自定義的控件,類型轉換器等;
剩下的是一些窗體的顯示屬性,以及一些事件綁定屬性,這跟html一樣,此處不再贅述;
在打開MainWindow.xaml.cs文件看一下:

所有的窗體都要繼承Window類,在構造器中我們可以看到一個方法,這個方法是.xaml頁面給的用於初始化控件。初始界面很簡單,到此就給大家解釋完畢了,我們下節再見。

