常言道,工欲善其事,必先利其器。要想學好WPF的開發,掌握並熟練應用各種開發工具無疑是重要的。WPF常用的開發工具主要有3種:XamlPad、Microsoft Express Blend2和Visual Studio 2008。對於簡單的XAML代碼用XamlPad編輯和測試比較方便,而對於復雜的界面設計用Microsoft Express Blend2則是首選,對於具有復雜的業務邏輯處理程序則必須借助Visual Studio 2008來完成。
技巧:
以上3種開發工具通常很少單獨使用,把它們結合起來更能發揮強大的作用。例如,可以把Microsoft Express Blend2和Visual Studio 2008結合起來,用Microsoft Express Blend2編寫復雜絢麗的可視化界面,用Visual Studio 2008編寫后台應用程序邏輯代碼,最后把兩者的結果合並為一個完整的項目。
XamlPad
XamlPad是Windows SDK提供的工具,具有XAML語法檢查的功能。可以實時分析並顯示XAML代碼的執行結果,以便於開發人員更好的調試和測試XAML代碼。XamlPad的一個缺點是無智能提示功能,因此只用該工具來編寫XAML代碼需要對類庫和XAML語法結構熟練掌握。另一個缺點是XamlPad 不支持代碼隱藏,即不能有后台的C#代碼文件。
技巧:
開發人員可以首先在Visual Studio 2008中編寫XAML代碼的整體部分,然后把代碼拷貝到XamlPad下面的窗格中,可以部分修改XAML代碼並觀察運行的結果,這是因為在XamlPad中顯示運行結果比Visual Studio 2008更快捷、更方便。
第一次運行XamlPad的界面如圖1.4所示,上面的窗格顯示的是代碼執行結果,而下面的窗格顯示的是XAML代碼。默認情況下,XamlPad自動生成的XAML代碼的頂層元素是Page元素,當然開發人員可以根據實際需要更改該元素,例如改為Window或NavigationWindow元素。區別是,Page顯示的運行結果可以在上面窗格中顯示,而對於Window元素,需要單擊上面綠色三角形標志的刷新按鈕並在新打開的窗口中顯示運行結果。
圖1 XamlPad的初始界面
例如,把Grid容器控件的背景設置為綠色,同時在其中放入一個具有從白色到黃色徑向漸變背景的圓形,該圓形模擬被強光照亮的黃色球體,背景的綠色模擬草地。開發人員可以在上面窗格中實時顯示的結果如圖2所示。
圖2 XamlPad的實時顯示結果
對於簡單的WPF程序,使用XamlPad非常方便,但是在沒有智能提示的情況下編寫復雜的界面程序是極難的,因此這種工具的用途十分有限。
說明:
XamlPad.exe文件位於系統盤的Program FilesMicrosoft SDKsWindowsv6.0Abin目錄下,通常位於C:Program FilesMicrosoft SDKsWindowsv6.0Abin目錄下。
Microsoft Express Blend2
Microsoft Express Blend2是專業的WPF界面開發工具,即使不會編程也能制作出高質量的、完美體驗的用戶界面。Microsoft Express Blend2工具的設計體驗如同Photoshop一樣,可以進行所見即所得的方式設計界面,而不需要了解WPF的類庫結構,以及C#編程語法等方面的知識。對於比較復雜的界面設計,應該首選該工具,並且它與Visual Studio 2008可以共享同一個解決方案或項目,因此能很好的實現界面與應用業務邏輯分離的目標。
Microsoft Express Blend2工具不與.NET Framework一起發布,該工具可以購買或者從網上下載。Microsoft Express Blend2開發環境的界面與Visual Studio 2008類似,也包括工具欄、屬性面板等,Microsoft Express Blend2開發環境的部分視圖如圖3所示。
圖3 Microsoft Express Blend2的設計界面
上面的設計視圖中顯示了用Express Blend2設計一個扭曲的矩形,並且具有從藍到綠,再到紅色的漸變背景。我們可以通過拖拽和更該屬性來達到此效果,甚至不了解XAML語法也可以設計漂亮的界面。其實,在進行界面的設計時,該工具在幕后為開發人員自動生成相應的XAML代碼。當然,了解XAML語法對於理解WPF還是很重要的。
Microsoft Visual Studio 2008
Visual Studio 2008對於界面的支持程度介於以上兩者之間,可以拖拽控件到界面,並且編寫界面的XAML代碼時具有智能提示,以及大多數情況下可以根據XAML代碼對設計界面自動刷新。
Visual Studio 2008雖然也能設計界面,但是對於復雜的設計來說卻無能為力,例如復雜的樣式和動畫等,這時應當采用Microsoft Express Blend2工具來設計。Visual Studio 2008主要的功能是通過后台代碼隱藏來實現界面元素的事件處理和復雜的業務邏輯處理等任務。Visual Studio 2008對於WPF編程和Windows Forms編程風格類似,例如可以把控件拖到窗體上,並設置屬性等。圖4是一個Visual Studio 2008項目的設計視圖。
圖4 Visual Studio 2008的設計界面
上面的設計界面中顯示的是一個具有黃色背景的矩形,該矩形可以通過設計界面拖放來改變大小,以及位置等,並可以通過右側的屬性面板來更改屬性。當然,如果對XAML語法熟練,還可以直接修改XAML代碼來達到同樣的效果。
注意:
Visual Studio 2008對設計視圖的支持不是很好,有時修改XAML代碼后,上面窗格中的設計視圖不會自動刷新而必須手動刷新。