一.Application介紹
WPF和WinForm 很相似, WPF與WinForm一樣有一個 Application對象來進行一些全局的行為和操作,并且每個 Domain (應用程序域)中僅且只有一個 Application 實例存在。和 WinForm 不同的是WPF Application默認由兩部分組成 : App.xaml 和 App.xaml.cs,這有點類似于 Asp.Net WebForm,將定義和行為代碼相分離。
微軟把WPF中經常使用的功能都封裝在 Application 類中了。 Application 類具體有以下功能:
- 跟蹤應用程序的生存期并與之交互。
- 檢索和處理命令行參數。
- 檢測和響應未經處理的異常。
- 共享應用程序范圍的屬性和資源。
- 管理獨立應用程序中的窗口。
- 跟蹤和管理導航。
二.WPF應用程序的啟動
關于如何在Visual Studio中創建一個“WPF應用程序”,前面的文章中已經說過了。請參見WPF入門教程系列一——基礎。
1、在Visual Studio 2013中創建一個“WPF應用程序”,使用App.xaml文件定義啟動應用程序。XAML從嚴格意義上說并不是一個純粹的 XML 格式文件,它更像是一種 DSL(Domain Specific Language,領域特定語言),它的所有定義都會由編譯器最后編譯成代碼。App.xaml文件默認內容如下圖:
2、當然,如果你習慣了把啟動寫在代碼中。你也可以跟WinForm中一樣,在類中定義一個Main方法來實現對WPF應用程序的啟動。
第一步:如下圖,在“解決方案資源管理器”中使用鼠標左鍵選中App.xaml文件,然后鼠標右鍵,彈出“彈出菜單—》從項目中排除”,這樣就在項目中去掉了我們剛才建立的App.xaml文件。
第二步:現在中添加一個新類,類名為App.cs。如下圖。在“解決方案資源管理器”中使用鼠標左鍵選中“WpfApp1”項目,然后點擊鼠標右鍵,彈出“彈出菜單”,按下圖中所示操作。
第三步:在彈出的“添加新項”界面中,選中“類”,把名稱修改為“App.cs”。如下圖。
第四步:在“解決方案資源管理器”中雙擊App.cs(如下圖),打開文件,然后可以分別寫入以下三種方式的代碼,進行啟動效果的調試。
第一種啟動應用程序的代碼
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace WpfApp1 { class App { [STAThread] static void Main() { // 定義Application對象作為整個應用程序入口 Application app = new Application(); // 方法一:調用Run方法 ,這種方式跟winform的調用一樣 WindowGrid win = new WindowGrid(); app.Run(win); } } }
第二種啟動應用程序的代碼
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace WpfApp1 { class App { [STAThread] static void Main() { // 定義Application對象作為整個應用程序入口 Application app = new Application(); //指定Application對象的MainWindow屬性為啟動窗體,然后調用無參數的Run方法 WindowGrid win = new WindowGrid(); app.MainWindow = win; //是必須的,否則無法顯示窗體 win.Show(); app.Run(); } } }
第三種啟動應用程序的代碼
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; namespace WpfApp1 { class App { [STAThread] static void Main() { // 定義Application對象作為整個應用程序入口 Application app = new Application(); // 通過Url的方式啟動 app.StartupUri = new Uri("WindowGrid.xaml", UriKind.Relative); app.Run(); } } }
3. 上面的方法,最后執行的效果,如下圖。
文章列表