一、WPF 应用程序由 System.Windows.Application 类进行管理
“只有客户发展了,才有我们的生存与发展!”这是创新互联的服务宗旨!把网站当作互联网产品,产品思维更注重全局思维、需求分析和迭代思维,在网站建设中就是为了建设一个不仅审美在线,而且实用性极高的网站。创新互联对成都网站设计、网站制作、网站制作、网站开发、网页设计、网站优化、网络推广、探索永无止境。二、创建 WPF 应用程序
创建 WPF 应用程序有两种方式:
1、Visual Studio 和 Expression Blend 默认的方式,使用 App.xaml 文件定义启动应用
程序
App.xaml 文件的内容大致如下:
1:
tation"
3: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4: StartupUri="Window1.xaml">
5:
6:
7:
其中 StartupUri 指定启动的 WPF 窗体
2、可以自已定义类,定义 Main 方法实现对 WPF 应用程序的启动
在项目中添加一个类,类的代码如下,在项目选项中,设定此类为启动项。
1: using System;
2: using System.Windows;
3:
4: namespace WpfApplicationLifeCycle
5: {
6: public class MainClass
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.R
elative);
26: //app.Run();
27: }
28: }
29: }
三、应用程序关闭
应用程序关闭时的策略由 ShutdownMode 属性指定,其类型为 System.Window
s.ShutdownMode 枚举类型,其枚举成员有:
OnLastWindowClose(默认值):当应用程序中的最后一个窗体关闭时或调用 Applic
ation 对象的 Shutdown()方法时,应用程序关闭;
OnMainWindowClose:当主窗体(即启动窗体)关闭时或调用 Application 对象的 S
hutdown()方法时,应用程序关闭。(类似于 C#的 Windows 应用程序的关闭模式);
OnExplicitShutdown:只有在调用 Application 对象的 Shutdown()方法时,应用
程序才会关闭;
更改的时候,可以直接在 App.xaml 中更改:
1:
tation"
3: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4: StartupUri="Window1.xaml"
5: ShutdownMode="OnExplicitShutdown">
6:
7:
8:
也可以在代码文件(App.xaml.cs)中更改
1: Application app = new Application();
2: Window2 win = new Window2();
3:
4: // 更改关闭模式必须要在调用 app.Run()方法之前
5: app.ShutdownMode = ShutdownMode.OnExplicitShutdown;
6: app.Run(win);
四、Application 对象的事件
应用程序的事件处理可以:
1、在 App.xaml 中做事件的绑定,在 App.xaml.cs 文件中添加事件的处理方法
在 App.xaml 文件中:
1:
tation"
3: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4: StartupUri="Window1.xaml"
5: Startup="Application_Startup">
6:
7:
8:
在 App.xaml.cs 文件中:
1: using System.Windows;
2:
3: namespace WpfApplicationLifeCycle
4: {
5: ///
6: /// Interaction logic for App.xaml
7: ///
8: public partial class App : Application
9: {
10: private void Application_Startup(object sender, Startup
EventArgs e)
11: {
12: // 定义应用程序启动时要处理的内容
13: }
14: }
15: }
2、在自定义的类中可以做正常的 C#的事件绑定:
1: [STAThread]
2: static void Main()
3: {
4: // 定义 Application 对象
5: Application app = new Application();
6: Window2 win = new Window2();
7:
8: // 添加事件的绑定
9: app.Startup += new StartupEventHandler(app_Startup);
10:
11: app.Run(win);
12: }
13:
14: static void app_Startup(object sender, StartupEventArgs e)
15: {
16: window2 win = new Window2();
win.Show();
win.button1.Content = "YOU!";
17: }
主窗体载入时,会在 Window2 里面定义的 button1 上面就会显示 YOU!
五、WPF 应用程序生存周期
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。