WPF应用程序管理(4)

2016-08-20 10:35:22来源:http://studybao.blog.51cto.com/1772164/1135481作者:StudyBao人点击




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


二、创建WPF应用程序


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


1、VisualStudio和ExpressionBlend默认的方式,使用App.xaml文件定义启动应用程序


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


<Applicationx:Class="WpfApplicationLifeCycle.App"


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


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


StartupUri="Window1.xaml">


<Application.Resources>


</Application.Resources>


</Application>


其中StartupUri指定启动的WPF窗体


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


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


usingSystem;


usingSystem.Windows;


namespaceWpfApplicationLifeCycle


{


publicclassMainClass


{


[STAThread]


staticvoidMain()


{


//定义Application对象


Applicationapp=newApplication();


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


Window2win=newWindow2();


app.Run(win);


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


//Window2win=newWindow2();


//app.MainWindow=win;


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


//app.Run();


//方法三:


//app.StartupUri=newUri("Window2.xaml",UriKind.Relative);


//app.Run();


}


}


}


三、应用程序关闭


应用程序关闭时的策略由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:Applicationapp=newApplication();


2:Window2win=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:///InteractionlogicforApp.xaml


7:///</summary>


8:publicpartialclassApp:Application


9:{


10:privatevoidApplication_Startup(objectsender,StartupEventArgse)


11:{


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


13:}


14:}


15:}


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


1:[STAThread]


2:staticvoidMain()


3:{


4://定义Application对象


5:Applicationapp=newApplication();


6:Window2win=newWindow2();


7:


8://添加事件的绑定


9:app.Startup=newStartupEventHandler(app_Startup);


app.Run(win);


12:}


13:


14:staticvoidapp_Startup(objectsender,StartupEventArgse)


15:{


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


17:}







最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台