偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Visual Studio 2010開發(fā)絢麗Win 7應用程序

原創(chuàng)
開發(fā) 后端
當你使用最新版本的操作系統(tǒng),使用最新的框架進行構建,和最新的Visual Studio版本工作時,你可以利用大量的令人振奮的新功能,本文向你介紹如何使用Visual Studio 2010,WPF 4和Windows API代碼包開發(fā)可以運行在Windows 7 UI上的應用程序。

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

#T#

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

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

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

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

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

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

Visual Studio 2010

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

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

背景筆刷

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

Windows 7任務欄

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

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

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

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

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

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

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

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

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

圖3在任務欄上使用圖標疊加顯示了相同的應用程序,你會看到主程序中選中了“按國家過濾”的復選框,列表中的客戶是按國家顯示的,如果選中這個過濾器,任務欄圖標上就會疊加顯示一個選中國家國旗的小圖標。

新圖標

圖 3 使用過濾設置的客戶查看程序顯示了一個疊加圖標

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

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

#p#

自定義縮略圖

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

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

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

設置ThumbnailClipMargin綁定

圖 4 設置ThumbnailClipMargin綁定

圖4顯示了XAML中設置的綁定,也顯示了Visual Studio 2010中新的標記擴展智能感應。

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

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

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

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

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

自定義縮略圖

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

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

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

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

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

在XAML中設置Jump List時,應用程序初始化后它會自動應用到Windows Shell。

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

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

除了這些標準的分類外,你還可以創(chuàng)建自定義分類,下面的代碼增加一個跳轉(zhuǎn)任務鏈接到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(); 

Jump List 

圖 6 一個有標準分類和自定義分類的Jump List

Windows 7對話框和控件

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

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

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

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

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

自定義位置

圖 7 Windows 7打開文件對話框增加了一個自定義位置

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

  1. <WindowsAPICodePackPresentation:ExplorerBrowser 
  2.           x:Name=”explorerBrowser1”/> 

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

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

資源瀏覽器控件

圖 8  運行在一個示例應用程序中的Windows API代碼包中的

新UI,新工具

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

責任編輯:彭凡 來源: 51CTO
相關推薦

2010-11-19 12:40:12

Visual Stud云應用程序

2011-01-12 11:56:36

Visual Stud

2010-04-01 15:10:06

Visual Stud

2011-01-24 07:24:48

Visual Stud

2010-04-16 13:33:54

Visual Stud

2009-12-16 15:39:37

Visual Stud

2009-12-01 10:49:44

Visual Stud

2011-02-13 17:10:28

Visual Stud

2015-04-30 12:37:13

Visual Stud

2009-08-12 09:16:04

Vista升級Windows 7升級Visual Stud

2010-11-16 09:23:13

敏捷開發(fā)Visual Stud

2010-02-05 09:06:17

Visual Stud

2009-12-02 09:43:38

Visual Stud

2009-11-11 13:24:51

Visual Stud

2009-11-13 15:44:39

Visual StudWindows 7

2009-06-08 10:14:47

Visual StudWin 7

2009-11-10 13:43:37

Visual Stud

2009-12-01 19:28:55

Visual Stud

2009-08-24 09:25:18

Visual C# ..NET應用程序

2009-12-15 09:36:32

Visual Stud
點贊
收藏

51CTO技術棧公眾號