我的位置: 主页 > 课程介绍 > net课程 >

学习WPF-WPF应用程序管理

2017-01-10 15:31
来源:未知
[导读]一、 WPF 应用程序由 System.Windows.Application 类进行管理 二、创建 WPF 应用程序 创建WPF应用程序有两种方式: 1、Visual Studio和Expression Blend默认的方式,使用App.xaml文件定义启动应用程序 App.xaml文件的内容大致如下: 1:Applicationx:Class=Wp

一、WPF应用程序由System.Windows.Application类进行管理

二、创建WPF应用程序

创建WPF应用程序有两种方式:

1、Visual Studio和Expression Blend默认的方式,使用App.xaml文件定义启动应用程序

    App.xaml文件的内容大致如下:

   1:<Applicationx:Class="WpfApplicationLifeCycle.App"

   2:     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

   3:     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

   4:     StartupUri="Window1.xaml">

   5:     <Application.Resources>

   6:     </Application.Resources>

   7:</Application>

    其中StartupUri指定启动的WPF窗体

2、可以自已定义类,定义Main方法实现对WPF应用程序的启动

    在项目中添加一个类,类的代码如下,在项目选项中,设定此类为启动项。

   1:usingSystem;

   2:usingSystem.Windows;

   3: 

   4:namespaceWpfApplicationLifeCycle

   5:{

   6:     publicclassMainClass

   7:     {

   8:         [STAThread]

   9:         static void Main()

  10:         {

  11:             // 定义Application对象

  12:             Application app = new Application();

  13: 

  14:             // 方法一:调用Run方法,参数为启动的窗体对象

  15:             Window2 win = new Window2();

  16:             app.Run(win);

  17: 

  18:             // 方法二:指定Application对象的MainWindow属性为启动窗体,调用无参数的Run方法

  19:             //Window2 win = new Window2();

  20:             //app.MainWindow = win;

  21:             //win.Show();           // 此处必须有win.Show(),否则不能显示窗体

  22:             //app.Run();

  23: 

  24:             // 方法三:

  25:             //app.StartupUri = new Uri("Window2.xaml", UriKind.Relative);

  26:             //app.Run();

  27:         }

  28:     }

  29:}

三、应用程序关闭

    应用程序关闭时的策略由ShutdownMode属性指定,其类型为System.Windows.ShutdownMode枚举类型,其枚举成员有:

  • OnLastWindowClose(默认值):当应用程序中的最后一个窗体关闭时或调用Application对象的Shutdown()方法时,应用程序关闭。
  • OnMainWindowClose:当主窗体(即启动窗体)关闭时或调用Application对象的Shutdown()方法时,应用程序关闭。(类似于C#Windows应用程序的关闭模式)
  • OnExplicitShutdown:只有在调用Application对象的Shutdown()方法时,应用程序才会关闭。

   更改的时候,可以直接在App.xaml中更改:

   1:<Applicationx:Class="WpfApplicationLifeCycle.App"

   2:     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

   3:     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

   4:     StartupUri="Window1.xaml"

   5:     ShutdownMode="OnExplicitShutdown">

   6:     <Application.Resources>

   7:     </Application.Resources>

   8:</Application>

   也可以在代码文件(App.xaml.cs)中更改

   1:Application app = newApplication();

   2:Window2 win = newWindow2();

   3: 

   4:// 更改关闭模式必须要在调用app.Run()方法之前

   5:app.ShutdownMode = ShutdownMode.OnExplicitShutdown;

   6:app.Run(win);

四、Application对象的事件

名称

说明

Activated

当应用程序成为前台应用程序时发生。

Deactivated

当应用程序停止作为前台应用程序时发生。

DispatcherUnhandledException

在异常由应用程序引发但未进行处理时发生。

Exit

恰好在应用程序关闭之前发生,且无法取消。

FragmentNavigation

当应用程序中的导航器开始导航至某个内容片断时发生,如果所需片段位于当前内容中,则导航会立即发生;或者,如果所需片段位于不同内容中,则导航会在加载了源XAML 内容之后发生。

LoadCompleted

在已经加载、分析并开始呈现应用程序中的导航器导航到的内容时发生。

Navigated

在已经找到应用程序中的导航器要导航到的内容时发生,尽管此时该内容可能尚未完成加载。

Navigating

在应用程序中的导航器请求新导航时发生。

NavigationFailed

在应用程序中的导航器在导航到所请求内容时出现错误的情况下发生。

NavigationProgress

在由应用程序中的导航器管理的下载过程中定期发生,以提供导航进度信息。

NavigationStopped

在调用应用程序中的导航器的StopLoading 方法时发生,或者当导航器在当前导航正在进行期间请求了一个新导航时发生。

SessionEnding

在用户通过注销或关闭操作系统而结束Windows 会话时发生。

Startup

在调用Application 对象的Run 方法时发生。

应用程序的事件处理可以:

1、在App.xaml中做事件的绑定,在App.xaml.cs文件中添加事件的处理方法

    在App.xaml文件中:

   1:<Applicationx:Class="WpfApplicationLifeCycle.App"

   2:     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

   3:     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

   4:     StartupUri="Window1.xaml"

   5:     Startup="Application_Startup">

   6:     <Application.Resources>

   7:     </Application.Resources>

   8:</Application>

    在App.xaml.cs文件中:

   1:usingSystem.Windows;

   2: 

   3:namespaceWpfApplicationLifeCycle

   4:{

   5:     /// <summary>

   6:     /// Interaction logic for App.xaml

   7:     /// </summary>

   8:     publicpartialclassApp : Application

   9:     {

  10:         privatevoidApplication_Startup(objectsender, StartupEventArgs e)

  11:         {

  12:             // 定义应用程序启动时要处理的内容

  13:         }

  14:     }

  15:}

2、在自定义的类中可以做正常的C#的事件绑定:

   1:[STAThread]

   2:staticvoidMain()

   3:{

   4:     // 定义Application对象

   5:     Application app = newApplication();

   6:     Window2 win = newWindow2();

   7: 

   8:     // 添加事件的绑定

   9:     app.Startup += new StartupEventHandler(app_Startup);

  10: 

  11:     app.Run(win);

  12:}

  13: 

  14:staticvoidapp_Startup(objectsender, StartupEventArgs e)

  15:{

  16:    Window2win = new Window2();

            win.Show();

            win.button1.Content = "YOU!";

  17:}

     主窗体载入时,会在Window2里面定义的button1上面就会显示YOU!

 

五、WPF应用程序生存周期

相关热词搜索: 推荐
申请免费学习IT技术,参观实力校园环境!
我要预约

我们将在24小时内联系您确定报名信息