|
當你使用最新的操作系統(tǒng),在最新的框架上構(gòu)建應用程序,并且使用最新版本的Visual Studio的時候,你可以使用許多令人興奮的新特性。你可以學習一下怎樣使用Visual Studio 2010, WPF 4 和 the Windows API Code Pack給你的應用程序添加Windows 7 UI。
Windows 7 UI有很多令人興奮的元素,例如:全新的任務欄,或者跳轉(zhuǎn)列表,視覺體驗本身并不屬于應用程序的范疇,但是它是應用程序體驗的重要組成部分。作為一個WPF開發(fā)者,你可以把那些元素添加到你的Windows7應用程序中,隨心所欲地定制它們在主窗口內(nèi)部和外部的行為。
使用WPF4,你幾乎可以訪問所有的Windows 7 UI特性。WPF4內(nèi)置了對Windows7任務欄的支持,其中包括可以自定義的縮略圖預覽,通過進度條和“圖標覆蓋”(icon overlay)從任務欄獲得視覺反饋,以及可以自定義的跳轉(zhuǎn)列表。雖然這些特性最終是通過Windows 7的原生API來提供的,但是WPF用托管的代碼對它們進行了封裝,通過WPF類的形式把它們暴露出來。這意味著你可以在XAML中創(chuàng)建跳轉(zhuǎn)列表對象和其他的UI對象,并且可以通過許多依賴屬性(dependency property)來綁定它們。
Visual Studio 2010本身就包含許多和WPF有關的新特性,其中包括一個全新的可視化設計器,拖放式的數(shù)據(jù)綁定,以及在XAML中的標記擴展的智能感知。這些特性已經(jīng)和WPF的任務欄類整合到一起了,它們可以讓你充分地利用Visual Studio的最新版本的全部功能,來構(gòu)建時尚的Windows7應用程序。
雖然WPF4對任務欄有很好的支持,但是,還有一些其他方面的Windows 7 API它并沒有封裝。例如:Windows7樣式的通用對話框。你只能使用Windows API Code Pack和一個外部的托管封裝庫在WPF中訪問這些API。Windows API Code Pack有它自己的一套shell和任務欄類,在WPF 3.5 SP1中也可以使用它們。
(Windows API Code Pack的下載地址:http://code.msdn.microsoft.com/WindowsAPICodePack)
數(shù)據(jù)綁定和Visual Studio 2010的WPF設計器
在接觸Windows7的新特性以前,讓我們先來看一看在全新的Visual Studio 2010的WPF設計器中的一個基礎的數(shù)據(jù)驅(qū)動的WPF應用程序。在Visual Studio 2010中,你可以在設計的時候通過把數(shù)據(jù)源拖放到可視化的設計器中的方式來創(chuàng)建數(shù)據(jù)綁定。
如果你把一個數(shù)據(jù)源項拖放到一個現(xiàn)有的控件上(例如,把一個文本字段拖放到一個文本框中),那么設計器會為那個數(shù)據(jù)源創(chuàng)建一個窗口資源,然后把這個字段綁定到那個控件上。如果你把一個數(shù)據(jù)源項拖放到一個容器上,那么設計器會創(chuàng)建一個相應的綁定控件,然后把這個控件添加到那個容器中。如果默認的類型并不合適,你可以自己設置這個綁定控件的類型。在截圖1中,我把一個來自于AdventureWorks 2008樣例數(shù)據(jù)庫的數(shù)據(jù)表拖放到一個窗口中,設計器自動地創(chuàng)建了一個數(shù)據(jù)網(wǎng)格控件。當我們開發(fā)在Windows7任務欄上顯示進度的功能的時候,我們將會用到這個數(shù)據(jù)網(wǎng)格。
(截圖1:把一個表數(shù)據(jù)源拖放到主窗口上,會生成了一個數(shù)據(jù)網(wǎng)格控件)
除了基礎的創(chuàng)建之外,我們還做了一點額外的工作,我們使用漸變式的畫刷來設置窗口的背景。Visual Studio 2010內(nèi)置了一個可視化的畫刷編輯器,這讓創(chuàng)建和使用漸變式的畫刷,圖像畫刷,以及純色的畫刷變得更加容易了。在一個畫刷屬性的屬性編輯器上下拉可以直接在編輯器中看到反饋,這可以讓你以可視化的方式創(chuàng)建漸變式的畫刷,或者為一個圖像畫刷選擇一個圖像。
(截圖2:使用可視化的畫刷編輯器創(chuàng)建一個背景畫刷。)
和Windows7的任務欄進行交互
在Windows7中,你可以通過一個橫跨任務項背景的進度條,在任務欄上顯示需要長時間才能完成的操作的進度。InterNET Explorer使用任務欄進度條來跟蹤文件的下載情況就是一個很好的例子。
你可以通過TaskbarItemInfo類和Windows7的任務欄進行交互,在主窗口上,這個類是通過一個依賴屬性暴露出來的。你可以在XAML中創(chuàng)建一個TaskbarItemInfo對象:
1. <Window.TaskbarItemInfo>
2. <TaskbarItemInfo x:Name="TaskbarItemInfo1"
Description="Customer Browser: Using WPF 4 on Windows 7”>
3. </TaskbarItemInfo>
4. </Window.TaskbarItemInfo>
NET技術:使用VS2010為Windows7編寫一個殺手級WPF應用,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。