文章出處

一.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. 上面的方法,最后執行的效果,如下圖。

 


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()