日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
VisualStudio2010開發(fā)絢麗Win7應(yīng)用程序

【獨(dú)家特稿】Windows 7 UI中最令人興奮的元素莫過于新的任務(wù)欄或Jump List(跳轉(zhuǎn)列表),雖然這些都是視覺上的創(chuàng)新,但不可否認(rèn),現(xiàn)在應(yīng)用程序UI已經(jīng)成為應(yīng)用程序的一個(gè)重要組成部分。作為一名WPF開發(fā)人員,可以將這些元素放進(jìn)你的應(yīng)用程序,使其更適合于在Windows 7上運(yùn)行,對(duì)主窗口內(nèi)外的行為可以完全自定義。

目前成都創(chuàng)新互聯(lián)公司已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)站空間、網(wǎng)站托管、企業(yè)網(wǎng)站設(shè)計(jì)、羅江網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

#T#

使用WPF 4,你幾乎可以獲得Windows 7 UI最大特色的所有功能,WPF 4內(nèi)置支持Windows 7任務(wù)欄,包括自定義縮略圖預(yù)覽,從任務(wù)欄的進(jìn)度條、圖標(biāo)和Jump List就可以看見反饋信息,這些功能最終由Windows 7本地API提供,但WPF使用托管代碼打包了這些API,并以WPF類的形式暴露出來,這意味著你可以在XAML中創(chuàng)建Jump List和其它UI對(duì)象,并通過大量的依賴屬性綁定它們。

Visual Studio 2010擁有大量的與WPF相關(guān)的新功能,包括新的可視化設(shè)計(jì)器,拖放式數(shù)據(jù)綁定,在XAML中智能感知標(biāo)記擴(kuò)展,這些功能結(jié)合WPF新的任務(wù)欄類,使用最新版本Visual Studio 2010中的強(qiáng)大功能,讓你可以構(gòu)建最新的Windows 7應(yīng)用程序。向您推薦《Visual Studio 2010應(yīng)用與開發(fā)詳解》專題以便于更多了解Visual Studio 2010。

雖然WPF 4完全支持任務(wù)欄,但還包括了Windows 7 API不包括的其它功能,如Windows 7風(fēng)格的通用對(duì)話框,你可以從Windows API代碼包中獲得這些功能。Windows API代碼包也有自己的一套Shell和任務(wù)欄類,從WPF 3.5 SP1中就有了。

數(shù)據(jù)綁定和Visual Studio 2010 WPF設(shè)計(jì)器

在談及Windows 7細(xì)節(jié)之前,我們先看看如何在Visual Studio 2010 WPF設(shè)計(jì)器中建立一個(gè)基本的數(shù)據(jù)驅(qū)動(dòng)WPF應(yīng)用程序。在Visual Studio 2010中,通過把數(shù)據(jù)源拖放到可視化設(shè)計(jì)器中,在設(shè)計(jì)時(shí)就可以設(shè)置好數(shù)據(jù)綁定。欲了解WPF設(shè)計(jì),向您推薦《讓你的代碼“炫”起來——WPF開發(fā)教程》。

如果你拖動(dòng)一個(gè)數(shù)據(jù)源到一個(gè)現(xiàn)有的控件上(假設(shè)是一個(gè)文本框中的文本字段),設(shè)計(jì)器將會(huì)為那個(gè)數(shù)據(jù)源創(chuàng)建一個(gè)窗口資源,然后將字段綁定到控件上。相反,如果你拖動(dòng)數(shù)據(jù)源到一個(gè)容器上,設(shè)計(jì)器會(huì)創(chuàng)建一個(gè)合適的綁定控件,并將其添加到容器上,如果默認(rèn)的控件并不合適,你還可以對(duì)其進(jìn)行設(shè)置,在圖1中,我從AdventureWorks 2008示例數(shù)據(jù)庫拖放了一個(gè)視圖到窗口中,自動(dòng)創(chuàng)建一個(gè)數(shù)據(jù)網(wǎng)格(data grid),在Windows 7任務(wù)欄上顯示進(jìn)度時(shí)我們需要用到數(shù)據(jù)網(wǎng)格。

圖 1 在主窗口上放置一個(gè)視圖數(shù)據(jù)源,自動(dòng)產(chǎn)生一個(gè)綁定的數(shù)據(jù)網(wǎng)格

作為基本設(shè)置的一個(gè)額外項(xiàng)目,我們將介紹一下使用漸變畫筆設(shè)置一個(gè)窗口的背景,Visual Studio 2010內(nèi)置了一個(gè)可視化筆刷編輯器,可以方便地創(chuàng)建和使用漸變和圖像刷以及純色,在一個(gè)筆刷屬性上點(diǎn)擊下拉列表,打開屬性編輯器,它允許你可視化地設(shè)置漸變或?yàn)閳D像刷選擇一張圖像。

圖 2 使用可視化筆刷編輯器創(chuàng)建一個(gè)背景筆刷

Windows 7任務(wù)欄

在Windows 7中,你可以在任務(wù)欄上顯示長時(shí)間操作的進(jìn)度,就象IE瀏覽器在狀態(tài)欄顯示文件下載的進(jìn)度條一樣。

通過TaskbarItemInfo類,你可以和Windows 7任務(wù)欄進(jìn)行交互,在主窗口上暴露一個(gè)依賴屬性,你可以在XAML中創(chuàng)建TaskbarItemInfo:

 
 
 
 
  1.  
  2.     
  3.         x:Name="TaskbarItemInfo1" 
  4.         Description="Customer Browser: Using WPF 4 on Windows 7”  
  5.         > 
  6.      
  7.  

你可以直接在XAML中編輯TaskbarItemInfo的屬性,也可以在Visual Studio屬性編輯器中進(jìn)行編輯,XAML代碼片段僅僅顯示了名字和描述屬性,描述屬性就是為任務(wù)欄指定的提示文本,大多數(shù)任務(wù)欄功能都可以通過這個(gè)類的屬性獲得。

為了顯示進(jìn)度條,需要設(shè)置兩個(gè)屬性:ProgressValue和ProgressState。ProgressState開始時(shí)為None,你可以將其設(shè)定為Indeterminate顯示一個(gè)帳篷式的進(jìn)度條,或設(shè)置為Normal,我這里就是設(shè)為Normal的:

 
 
 
 
  1. TaskBarItemInfo1.ProgressValue = 0;  
  2. TaskBarItemInfo1.ProgressState = TaskbarItemProgressState.Normal; 

ProgressValue等于1.0時(shí)顯示一個(gè)完整的進(jìn)度條,為了跟蹤數(shù)據(jù)表的填寫,我們首先執(zhí)行一個(gè)計(jì)數(shù)查詢,計(jì)算出視圖中的所有行數(shù),使用這個(gè)值作為整個(gè)進(jìn)度條的值,然后連接數(shù)據(jù)表的RowChanged事件,再增加下面兩行代碼更新進(jìn)度條:

 
 
 
 
  1. this.rowsUpdated++;  
  2. TaskbarItemInfo1.ProgressValue =  
  3.                             ((double)this.rowsUpdated)/this.rowCount; 

除了進(jìn)度條外,你還可以使用圖標(biāo)疊加提供應(yīng)用程序狀態(tài)的反饋,圖標(biāo)疊加是在任務(wù)欄應(yīng)用程序圖標(biāo)上方疊加一個(gè)小圖標(biāo),它可以用于應(yīng)用程序狀態(tài)的傳達(dá),如播放或暫停,在線或離線,我們將會(huì)使用圖標(biāo)疊加為我們的客戶列表顯示一個(gè)過濾設(shè)置。

圖3在任務(wù)欄上使用圖標(biāo)疊加顯示了相同的應(yīng)用程序,你會(huì)看到主程序中選中了“按國家過濾”的復(fù)選框,列表中的客戶是按國家顯示的,如果選中這個(gè)過濾器,任務(wù)欄圖標(biāo)上就會(huì)疊加顯示一個(gè)選中國家國旗的小圖標(biāo)。

圖 3 使用過濾設(shè)置的客戶查看程序顯示了一個(gè)疊加圖標(biāo)

通過對(duì)TaskbarItemInfo的Overlay屬性指定一個(gè)圖像資源就可設(shè)置一個(gè)疊加,對(duì)于示例,我為每個(gè)旗幟圖像創(chuàng)建了一個(gè)位圖資源,在設(shè)置過濾器時(shí),我們可以從窗口資源載入圖像,并設(shè)置疊加:

 
 
 
 
  1. string resourceKey = “flag_” + countryName;  
  2. TaskbarItemInfo1.Overlay =  
  3.                      (ImageSource)this.TryFindResource(resourceKey); 

#p#

自定義縮略圖

應(yīng)用程序縮略圖預(yù)覽是UI打扮的一部分,當(dāng)你的程序運(yùn)行在Windows 7上,這個(gè)功能可以免費(fèi)獲得,Windows 7從任務(wù)欄為主程序窗口顯示一個(gè)彈出式的縮略圖,用戶可以使用縮略圖預(yù)覽激活或關(guān)閉應(yīng)用程序,或是在應(yīng)用程序?qū)嵗g進(jìn)行切換。

你可以使用TaskbarItemInfo的ThumbnailClipMargin屬性自定義應(yīng)用程序的縮略圖圖像,使用這個(gè)屬性,你可以在主窗口中指定一個(gè)矩形用于顯示縮略圖,而不是在整個(gè)主窗口范圍顯示。

ThumbnailClipMargin是一個(gè)依賴屬性,因此除了指定一個(gè)靜態(tài)的邊界外,你可以將其綁定到其它控件的邊界,使用那個(gè)控件進(jìn)行應(yīng)用程序預(yù)覽,我使用這個(gè)方法設(shè)置縮略圖預(yù)覽只顯示客戶數(shù)據(jù)網(wǎng)格。

圖 4 設(shè)置ThumbnailClipMargin綁定

圖4顯示了XAML中設(shè)置的綁定,也顯示了Visual Studio 2010中新的標(biāo)記擴(kuò)展智能感應(yīng)。

縮略圖預(yù)覽也包括一套工具欄按鈕,允許用戶直接從預(yù)覽向程序發(fā)送命令,如發(fā)送媒體播放和暫停命令,對(duì)于示例,我創(chuàng)建了一個(gè)拷貝工具欄按鈕,從一個(gè)文本框中拷貝客戶的Email地址。

TaskbarItemInfo類包括一個(gè)集合屬性,叫做ThumbButonInfos,通過它你就可以設(shè)置一個(gè)預(yù)覽工具條,在Visual Studio 2010中,你可以在集合編輯器中編輯每個(gè)按鈕,當(dāng)然也可以直接在XAML中編輯。

ThumbButtonInfo通常指定發(fā)送的命令,命令目標(biāo),按鈕使用的圖像和提示文本,對(duì)于我們的拷貝按鈕,代碼如下:

 
 
 
 
  1.                  Description="Copy E-Mail Address"                
  2. ImageSource="/wpf4example;component/Images/copy.png"   
  3.                  CommandTarget="{Binding ElementName=textBox1}" /> 

通過WPF命令的魔法,根據(jù)文本框中的文本是否處于選中狀態(tài),自動(dòng)啟用或禁用按鈕。

圖 5 自定義縮略圖圖像和拷貝工具條按鈕

Jump List(跳轉(zhuǎn)列表)

Jump List是常規(guī)任務(wù)或與程序相關(guān)文件的列表,在任務(wù)欄應(yīng)用程序圖標(biāo)上點(diǎn)擊右鍵時(shí)彈出Jump List,你 可以增加文件,任務(wù)或你自己的任務(wù)分類自定義應(yīng)用程序的Jump List。

Jump List與應(yīng)用程序本身關(guān)聯(lián),而不是一個(gè)特定的運(yùn)行實(shí)例,你可以為你的應(yīng)用程序增加一個(gè)自定義Jump List,或是在XAML文件(app.xaml)中向應(yīng)用程序?qū)ο蟾郊右粋€(gè)Jump List。

 
 
 
 
  1.  
  2.     
  3.               ShowFrequentCategory="True"> 
  4.         
  5.                    Description="Run Notepad"                ApplicationPath="c:\windows\notepad.exe"           
  6.                    IconResourcePath="c:\windows\notepad.exe"/> 
  7.      
  8.  

在XAML中設(shè)置Jump List時(shí),應(yīng)用程序初始化后它會(huì)自動(dòng)應(yīng)用到Windows Shell。

Jump List中可以包括跳轉(zhuǎn)任務(wù),啟動(dòng)其它程序,也包括一個(gè)挑戰(zhàn)路徑,鏈接到一個(gè)文件,如果你的應(yīng)用程序是某個(gè)文件類型的注冊(cè)處理程序,在Jump List中才會(huì)顯示跳轉(zhuǎn)路徑。

Windows Shell維護(hù)一套最近和應(yīng)用程序最常選擇的文件的列表,你可以通過設(shè)置ShowRecentCategory和ShowFrequentCategory在應(yīng)用程序Jump List中顯示這些列表。

除了這些標(biāo)準(zhǔn)的分類外,你還可以創(chuàng)建自定義分類,下面的代碼增加一個(gè)跳轉(zhuǎn)任務(wù)鏈接到calc.exe,并將其歸為自定義分類。

 
 
 
 
  1. JumpTask jumpTask1 = new JumpTask();  
  2.                 jumpTask1.ApplicationPath =  
  3.                         "C:\\windows\\system32\\calc.exe";  
  4.                 jumpTask1.IconResourcePath =  
  5.                         "C:\\windows\\system32\\calc.exe";  
  6.                 jumpTask1.Title = "Calculator";  
  7.                 jumpTask1.CustomCategory = "Calculation";  
  8.  
  9. JumpList jumpList1 = JumpList.GetJumpList(App.Current);  
  10. jumpList1.JumpItems.Add(jumpTask1);  
  11. jumpList1.Apply(); 

圖 6 一個(gè)有標(biāo)準(zhǔn)分類和自定義分類的Jump List

Windows 7對(duì)話框和控件

WPF 4中未包括Windows 7的部分是通用文件對(duì)話框API,你可以從Windows API代碼包獲得,代碼包讓你可以從WPF應(yīng)用程序啟動(dòng)通用對(duì)話框。將代碼包程序集引入到你的應(yīng)用程序,就可以使用代碼包命名空間中的類,包括CommonDialog。

Windows 7也包括一些著名的文件夾,如桌面,圖片庫,你可以在CommonDialog指定文件路徑,下面的代碼指定的就是打開圖片庫:

 
 
 
 
  1. CommonOpenFileDialog dlg = new CommonOpenFileDialog();  
  2. dlg.InitialDirectoryShellContainer =   
  3.                          (ShellContainer)KnownFolders.PicturesLibrary; 

你可以使用已知的文件夾或Shell對(duì)象為通用文件打開或文件保存對(duì)話框指定許多設(shè)置,例如,下面的代碼增加視頻庫作為打開對(duì)話框新的打開位置:

 
 
 
 
  1. dlg.AddPlace((ShellContainer)KnownFolders.VideosLibrary,  
  2.              FileDialog.AddPlaceLocation.Bottom); 

圖 7 Windows 7打開文件對(duì)話框增加了一個(gè)自定義位置

Windows API代碼包也提供了一個(gè)打包的WPF資源瀏覽器控件,你可以使用它來顯示文件和其它Shell對(duì)象,只需要在XAML文件中聲明它就可以使用了。

 
 
 
 
  1.           x:Name=”explorerBrowser1”/> 

然后調(diào)用底層控件上的Navigate顯示在你窗口中選擇的文件夾。

 
 
 
 
  1. explorerBrowser1.ExplorerBrowserControl.Navigate(  
  2.  (ShelObject)KnownFolders.SampleMusic); 

圖 8  運(yùn)行在一個(gè)示例應(yīng)用程序中的Windows API代碼包中的

新UI,新工具

使用WPF 4和Windows API代碼包,通過完整的Visual Studio 2010 UI,你可以在本地Windows 7應(yīng)用程序上加入很炫的功能,這對(duì)于開發(fā)人員來說可以收獲巨大的成功感,新工具,新UI,讓一切更美好!點(diǎn)擊這里下載Visual Studio 2010。

原文出處:http://www.devx.com/VS_2010/Article/43562?trk=DXRSS_LATEST

原文名:Using Visual Studio 2010 to Write Killer WPF Apps for Windows 7

作者:Steve Apiki


分享題目:VisualStudio2010開發(fā)絢麗Win7應(yīng)用程序
當(dāng)前URL:http://www.5511xx.com/article/dhcpsdh.html