- C#入門經典(第7版):C# 6.0 & Visual Studio 2015(.NET開發經典名著)
- (美)Beijamin Perkins Jacob Vibe Hammer Jon D. Reid
- 1430字
- 2021-04-02 21:18:30
2.3 桌面應用程序
通常,在演示代碼時,將其當作桌面Windows應用程序的一部分來運行,要比通過控制臺窗口或命令提示符來運行更便于說明。下面用用戶界面構件來組合一個用戶界面。
下面的示例介紹建立用戶界面的基礎知識,說明如何啟動和運行桌面應用程序,但并不詳細討論應用程序實際完成的工作。Microsoft推薦使用WPF技術創建桌面應用程序,所以本例中使用了WPF。本書后面會詳細研究桌面應用程序,以及WPF到底是什么,它到底可以做些什么。
試一試:創建一個簡單的Windows應用程序:WpfApplication1\MainWindow.xaml和WpfApplication1\MainWindow.xaml.cs
(1)在與之前相同的位置(C:\BegVCSharp\Chapter02)創建一個類型為WPF Application的新項目,其默認名稱是WpfApplication1。如果第一個項目仍處于打開狀態,就應選擇Create New Solution選項來啟動一個新解決方案,這些設置如圖2-10所示。

圖2-10
(2)單擊OK按鈕,創建項目后,應該會看到一個新的分成兩個窗格的選項卡。上面的窗格顯示了一個空窗口,稱為MainWindow,下面的窗格顯示了一些文本。這些文本實際上就是用來生成窗口的代碼,在修改UI時,會看到這些文本也發生了變化。
(3)單擊屏幕左上方的Toolbox選項卡,然后雙擊Common WPF Controls區域中的Button,在窗口中添加一個按鈕。
(4)雙擊剛才添加到窗口中的按鈕。
(5)現在應顯示MainWindow.xaml.cs中的C#代碼。執行如下修改(為簡短起見,這里只顯示了文件中的部分代碼):
private void Button_Click(object sender, Routed EventArgs e)
{
MessageBox.Show("The first desktop app in the book! ");
}
(6)運行應用程序。
(7)單擊顯示出來的按鈕,打開一個消息對話框,如圖2-11所示。

圖2-11
(8)單擊OK。像每個標準桌面應用程序那樣,單擊右上角的X圖標,退出應用程序。
示例說明
IDE又一次自動完成了許多工作,使我們不費吹灰之力就能完成一個實用的桌面應用程序的創建。剛才創建的應用程序與其他窗口的行為方式相同 —— 可以移動、重新設置其大小、最小化等。我們不必編寫任何代碼來實現這種功能。我們添加的按鈕也是這樣。雙擊按鈕,IDE就知道我們想添加一些代碼,當運行應用程序時,用戶單擊該按鈕,就執行我們已經編寫好的代碼。只要提供了這段代碼,就可以得到按鈕單擊的所有功能。
當然,桌面應用程序不僅限于帶有按鈕的普通窗口。如果看看從中選擇Button選項的工具箱,就會看到一整套用戶界面構件(稱為控件),其中一些用戶可能很熟悉。本書在其他地方將使用其中的大多數用戶界面構件,它們使用起來都非常簡單,可以節省許多時間和精力。
應用程序的代碼在MainWindow.xaml.cs中,看起來并不比上一節提供的代碼復雜多少,Solution Explorer窗口中其他文件的代碼也不太復雜。MainWindow.xaml中的代碼(可在添加按鈕的拆分窗格視圖中看到)看上去也很簡單。
這是一段XAML代碼。XAML是在WPF應用程序中定義用戶界面的語言。
下面仔細分析一下在窗口中添加的按鈕。在MainWindow.xaml的頂部窗格中,單擊按鈕一次選中它。此時屏幕右下角的Properties窗口顯示了按鈕控件的屬性(控件也有屬性,就像上一個示例中的文件一樣)。確保應用程序當前沒有運行,然后向下滾動到Content屬性,該屬性現在被設為Button。將它設為Click Me,如圖2-12所示。

圖2-12
設計器中按鈕上的文本以及XAML代碼也會反映這種變化,如圖2-13所示。

圖2-13
這個按鈕具有許多屬性,從按鈕顏色和大小的簡單格式,到某些模糊設置(如數據綁定設置,它可以建立與數據的聯系),應有盡有。如上例所述,改變屬性通常會直接改變代碼,這也不例外,從XAML代碼的改變中可以看到這一點。但如果切換回MainWindow.xaml.cs的代碼視圖,是看不到代碼發生變化的。這是因為WPF應用程序能夠保持應用程序的設計(如按鈕上的文本)與功能(如單擊按鈕后發生的操作)的分離。
注意:也可以使用Windows Forms來創建桌面應用程序。但WPF是一種更新的技術,能夠以更靈活、更強大的方式創建桌面應用程序,而且其目的就是取代Windows Forms,所以本書中不討論Windows Forms。