亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

XAML開發入門之創建XAML應用程序

2019-11-17 04:37:16
字體:
來源:轉載
供稿:網友
雖然XAML可以創建一個類庫和模塊供其它的程序使用(有點類似于用C#或者VB.NET等語言創建一個DLL程序集,供其它的程序使用),但是我們還是經常直接使用XAML來構建用戶界面。一般來說,XAML應用程序有兩種類型,分別為eXPRess和installed。Express應用程序通常宿主于一個Web瀏覽器中,也就是說在瀏覽器中以Web頁面類似的形式進行呈現的。而Installed應用程序就和傳統的桌面程序非常類似,包括控制臺程序和窗體程序兩種形式。由于我們在這里是以手動的方式創建一個WPF程序,所以我們無法直接使用WinFX Extensions to Visual Studio 2005提供的模板創建特定類型的XAML程序。為此,我們要通過手動的方式創建一個特定類型的XAML應用程序,我們還要創建對應的項目文件,并在該項目文件中指定要創建的應用程序類型。

  MSBuild是Vista和Visual Studio 2005中一項新的特性,伴隨著Visual Studio 2005的發布,就標志著微軟已經遷移到新一代的統一生成平臺。現在所有的項目都可以很輕松地通過MSBuild生成.NET程序集。更加激動人心和有益的是,在編譯和生成一個應用程序時,并不需要Visual Studio 2005作為必需的支持,我們完全可以采用MSBuild生成應用程序。假如你安裝了Windows SDK的話,MSBuild也會發布到你的計算機中。

  提示:假如使用Visual Studio 2005創建一個XAML應用程序的話,那么你完全不用理會MSBuild生成應用程序的具體細節。Visual Studio 2005將會自動地為該XAML程序創建一個項目文件, 而后MSBuild將按照這個項目文件指定的方式進行工作。

  提示:可以通過"開始"-"所有程序"-"Microsoft Windows SDK"-"CMD"打開MSBuild控制臺窗口。你可以在命令提示符中輸入"msbuild /help"查看所有與MSBuild相關的命令。

  MSBuild會讀取一個基于xml的、擴展名為.csproj或vbcsproj的項目文件,并按照該項目文件指定的方式,生成相應的可執行程序。在項目文件中包含一系列的XML元素,我們在這里只介紹一些重要的XML元素和它們的對應設置。各個XML元素的描述如下:

  Project 所有的項目文件都必需的根元素

  PropertyGroup 包含一些項目屬性的設置,例如我們在生成一個項目時是采用Debug方式還是Release方式。

  ItemGroup 包含一系列的項目,用來指定組成該項目的代碼文件或資源文件。

  Import 答應你導入其它的一些項目文件,例如將一些目標文件導入到某項目文件中

  我們可以有很多方式為MSBuild配置對應的項目文件,當然最便捷的方法就是直接使用Visual Studio 2005,它會自動地生成相應的項目文件。下面是一個最簡單的項目文件示例,其代碼如下:

01 <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
02 <PropertyGroup>
03 <AssemblyName>MyFirstapplication</AssemblyName>
04 <TargetType>winexe</TargetType>
05 <Configuration>Release</Configuration>
06 <OutputPath>./</OutputPath>
07 </PropertyGroup>
08 <ItemGroup>
09 <Reference Include="System" />
10 <Reference Include="WindowsBase" />
11 <Reference Include="PresentationCore" />
12 <Reference Include="PresentationFramework" />
13 </ItemGroup>
14 <ItemGroup>
15 <ApplicationDefinition Include="MyApp.xaml" />
16 <Page Include="Page1.xaml" />
17 </ItemGroup>
18 <Import Project="$(MSBuildBinPath)/Microsoft.CSharp.targets" />
19 <Import Project="$(MSBuildBinPath)/Microsoft.WinFX.targets" />
20 </Project>
  上述的項目文件中,我們在第1行使用了Project元素了,并為其xmlns屬性指定了命名空間。注重這個屬性是必需的,而且其屬性值必須為http://schemas.microsoft.com/developer/msbuild/2003。我們在前面提及過,PropertyGroup中包含一些項目屬性的設置,例如在第3行代碼中,我們使用AssemblyName元素來設置MSBuild產生最終的可執行程序名,第4行代碼使用TargetType元素指定生成的程序類型,我們可以在<TargetType>…</TargetType>之間設置4種不同的值,在本例中為"winexe",表明生成的目標程序類型是一個圖形化程序(不是控制臺程序,可以為窗體形式,也可以為瀏覽器形式)。假如將其值設置為"exe",則生成的是一個控制臺程序。"Library"是一個DLL程序集,"Netmodule"生成的則是一個程序集中的模塊。第5行代碼中的Configuration元素是一個可選項,假如想使用debug生成方式的話,可以將其設置為"debug",默認的生成方式為"Release"。第6行代碼中的OutputPath元素用來指定生成文件存放的文件夾,而本例中的"./"表示生成的文件將直接生成在根目錄下。第9到13行的<ItemGroup>…</ItemGroup>中包含4個Reference元素,在這里我們可以使用"Include"屬性來語言一個動態鏈接庫文件,而"System"、"WindowsBase"等就是這些DLL文件的名稱,這些動態鏈接庫文件中包含了WPF中所有的核心類。第14到17行的<ItemGroup>…</ItemGroup>中,我們使用ApplicationDefinition元素的"Include"屬性指定該XAML程序的應用程序定義文件為"MyApp.xaml"。使用Page元素的"Include"屬性指定該XAML程序中使用到的XAML頁面文件(假如該XAML頁面還包含代碼后置文件的話,那么還必須使用Compile屬性指定對應的代碼后置文件)。最后要注重的就是第18、19代碼所使用的Import元素,該元素答應你包含其它的項目文件,其中該元素的Project屬性是必選的,用來指定所要包含的項目文件。一般情況下,我們通常使用Import元素來導入標準的目標文件,其中一個是Microsoft.WinFX.targets,另外一個則是和適當的語言相關的目標文件-Microsoft.CSharp.targets或Microsoft.VisualBasic.targets。大多數的WPF程序在生成時都需要上述兩個文件中定義的目標。


  對一個C#的項目來說,標準的Import語句如下:

01 <Import Project="$(MSBuildBinPath)/Microsoft.CSharp.targets" />
02 <Import Project="$(MSBuildBinPath)/Microsoft.WinFX.targets" />
  而對一個VB.NET項目來說,標準的Import語句如下:

01 <Import Project="$(MSBuildBinPath)/Microsoft.VisualBasic.targets" />
02 <Import Project="$(MSBuildBinPath)/Microsoft.WinFX.targets" /> QQRead.com 推出數據恢復指南教程 數據恢復指南教程 數據恢復故障解析 常用數據恢復方案 硬盤數據恢復教程 數據保護方法 數據恢復軟件 專業數據恢復服務指南
  現在通過一個完整的步驟來創建并生成上述的WPF程序,以便你可以快速地進入學習XAML的歷程。

  1、首先我們在創建一個目錄,在這里D盤上創建了一個FirstDemo文件夾,而后通過"開始"-"所有程序"-"附件"-"記事本"打開記事本程序,并將程序代碼2-1輸入到記事本中。使用"文件"-"保存"命令將該文件保存到FirstDemo文件夾中,在彈出的"另存為"對話框,我們將保存類型設置為"所有文件",并在文件名處填上"MyApp.xaml"。如下圖所示

XAML開發入門之創建XAML應用程序(圖一)

  2、再在記事本中分別創建和保存Page1.xaml頁面,其實現的方式和MyApp.xaml相同。現在我們要創建一個工程文件,由于本章中的所有示例都是采用C#進行代碼邏輯的編寫,所以我們創建的工程名稱為"firstdemo.csproj"。創建上述的3個文件后,FirstDemo文件夾中的內容如下圖所示。

XAML開發入門之創建XAML應用程序(圖二)

  3、現在我們要使用MSBuild將這些文件生成一個WPF程序,為此,我們可以通過"開始"-"所有程序"-"Microsoft Windows SDK"-"CMD"打開MSBuild控制臺窗口,默認狀態我們所處目錄是Windows SDK的安裝路徑。假如要使用MSBuild來執行firstdemo.csproj文件,我們必須轉到"D:/FirstDemo"路徑中,為此,我們可以在光標處輸入"CD /"返回到D盤根目錄,而后再通過"CD FirstDemo"命令進入"D:/FirstDemo"路徑。具體的實現圖如下

XAML開發入門之創建XAML應用程序(圖三)

  4、通過"DIR"命令可以查看當前目錄中的各個文件,如圖所示

XAML開發入門之創建XAML應用程序(圖四)

  5、現在我們就可以通過msbuild命令來執行firstdemo.csproj文件,直接在光標處輸入"msbuild firstdemo.csproj"命令。生成成功后的顯示如下:

XAML開發入門之創建XAML應用程序(圖五)

  6、打開FirstDemo文件夾,可以看到其包含的文件方式了一些改變,我們可以直接雙擊MyFirstApplication.exe來運行這個生成后的WPF程序。

  7、該WPF程序最終的呈現效果如下圖所示,

XAML開發入門之創建XAML應用程序(圖六)

  和XAML的呈現效果比較,發現它們是不是和一樣呢?在上圖我們可以看到窗體的上方有兩個類似瀏覽器"前進"和"后退"的按鈕,這表明該WPF是一個宿主于瀏覽器的呈現。假如你將Pgae1.xaml的根元素Page改為Window,執行生成該程序,你將發現最后不再是在瀏覽器中進行呈現。其效果如下所示:

XAML開發入門之創建XAML應用程序(圖七)

  也就是說我們可以在一個XAML文件中設置其根元素,假如為Page,表示它將宿主于瀏覽器。若為Window的話,則是和傳統的桌面程序那樣直接進行呈現。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品久久7777777| 成人性教育视频在线观看| 欧美一区二区三区免费观看| 久久久精品视频在线观看| www欧美日韩| 日韩一级黄色av| 欧美日韩美女视频| 欧美性资源免费| 国产日韩在线亚洲字幕中文| 国产精品91久久久| 国产精品久久久久久久久久东京| 国产午夜精品麻豆| 亚洲精品久久久久久下一站| 国产剧情日韩欧美| 中日韩美女免费视频网址在线观看| 国产精品自拍网| 欧美日韩在线视频观看| 在线观看精品国产视频| 国语自产精品视频在免费| 日韩国产精品亚洲а∨天堂免| 正在播放国产一区| 亚洲人成电影网站| 久久福利视频导航| 欧美巨猛xxxx猛交黑人97人| 丝袜亚洲另类欧美重口| 另类专区欧美制服同性| 欧美精品久久一区二区| 精品一区二区电影| 最近中文字幕mv在线一区二区三区四区| 欧美成人午夜免费视在线看片| 亚洲最新视频在线| 亚洲一区中文字幕| 中文字幕av一区| 国产欧美韩国高清| 国产精品视频1区| 亚洲精品91美女久久久久久久| 亚洲精品一区二三区不卡| 国产精品盗摄久久久| 国产91精品黑色丝袜高跟鞋| 久青草国产97香蕉在线视频| 欧美日本高清视频| 国产精品羞羞答答| 欧美麻豆久久久久久中文| 久久69精品久久久久久国产越南| 久久精品美女视频网站| 9.1国产丝袜在线观看| 精品香蕉在线观看视频一| 亚洲色图25p| 亚洲第一二三四五区| 亚洲天天在线日亚洲洲精| 欧美日韩第一页| 欧美国产乱视频| 久久成人在线视频| 91精品久久久久久久久久| 欧美成人精品不卡视频在线观看| 最近中文字幕mv在线一区二区三区四区| 欧美巨乳美女视频| 日本三级久久久| 91丝袜美腿美女视频网站| 亚洲www永久成人夜色| 日韩国产高清污视频在线观看| 国产精品999999| 日韩在线视频免费观看高清中文| 亚洲精品中文字幕有码专区| 精品久久久久久电影| 97精品国产97久久久久久| 国产69精品久久久久9999| 欧美视频13p| 国产午夜精品全部视频在线播放| 国产区亚洲区欧美区| 欧美国产日韩免费| 成人免费激情视频| 色狠狠av一区二区三区香蕉蜜桃| 久久久在线免费观看| 欧美性猛交xxxx免费看| 日韩一区在线视频| 国产精品成人aaaaa网站| 日韩视频免费看| 中国日韩欧美久久久久久久久| 欧美国产亚洲视频| 国产在线精品播放| 亚洲电影免费观看高清完整版在线| 日韩欧美在线中文字幕| 精品呦交小u女在线| 国产精品亚洲第一区| 日韩国产中文字幕| 亚洲精品动漫100p| 精品久久久国产精品999| 国产欧美精品一区二区| 久久91亚洲精品中文字幕奶水| 九九热视频这里只有精品| 亚洲人成网在线播放| 欧美精品久久一区二区| 奇门遁甲1982国语版免费观看高清| 国产一区二区色| 欧美激情精品在线| 中文字幕日本精品| 国产激情综合五月久久| 久久精品福利视频| 欧美日韩国产中文精品字幕自在自线| 国产suv精品一区二区| 日韩在线高清视频| 一区二区欧美久久| 亚洲大胆人体av| 91精品国产高清久久久久久| 欧美大片免费观看在线观看网站推荐| 97在线视频国产| 久久69精品久久久久久久电影好| 欧美日韩亚洲视频| 欧美第一黄网免费网站| 亚洲网站在线观看| 欧美猛交免费看| 亚洲精品电影在线观看| 欧美成人激情图片网| 日韩在线免费视频观看| 亚洲国产婷婷香蕉久久久久久| 国产成人综合亚洲| 国产中文字幕日韩| 黑人巨大精品欧美一区二区| 亚洲综合精品一区二区| 亚洲a成v人在线观看| 91久久精品国产91久久| 亚洲欧美日韩天堂一区二区| 国内精品久久久久久影视8| 红桃av永久久久| 欧美男插女视频| 在线观看国产精品淫| 久久精品视频在线| 日本三级久久久| 精品国产一区二区三区久久狼5月| 精品国产福利视频| 亚洲国产天堂久久国产91| 亚洲人成网站777色婷婷| 久久精品在线播放| 日韩精品亚洲精品| 疯狂欧美牲乱大交777| 91亚洲精品一区二区| 奇米一区二区三区四区久久| 国产成人精品网站| 久久天天躁狠狠躁夜夜躁| 久久成年人视频| 懂色aⅴ精品一区二区三区蜜月| 91国语精品自产拍在线观看性色| 日韩精品亚洲元码| 久久久91精品国产| 国产一区二区三区18| 久久九九国产精品怡红院| 国产精品视频网| 超碰97人人做人人爱少妇| 性欧美亚洲xxxx乳在线观看| 国产精品久久久久高潮| 国产精品激情av电影在线观看| 久久久久久久香蕉网| 欧美大片欧美激情性色a∨久久| 国产精品福利网站| 久久久久久高潮国产精品视| 亚洲色图偷窥自拍| 国产a∨精品一区二区三区不卡| 日韩av成人在线| 麻豆一区二区在线观看| 揄拍成人国产精品视频| 欧美老妇交乱视频| 久热精品视频在线免费观看| 日本精品久久中文字幕佐佐木|