Application的关闭方法

8. Application类 - 图2

Application中的重要事件

8. Application类 - 图3

设置程序启动闪屏

8. Application类 - 图4

Application类杂项

  1. 设置程序初始化页面,引入图片并修改生成属性为SplashScreen
  2. 设置应用程序图标

8. Application类 - 图5

  1. Application类可以在任何窗体间进行访问,使用Application.Current类,允许全局的访问
  2. 建议UI层的众多配置,可以独立的配置类,存在Application类中,便于全局的访问和使用
  3. 在窗体交互过程中,只使用窗体提供的方法,事件或字段,而不该直接使用代码访问其属性,字段,控件。
  4. 应用程序单列实现
  5. 方法1: 启动时通过进程类检查是否有相同进程名称的进程,如果有则不启动;
  6. 方法2:使用旧版本WindowsFormsApplicationBase 进行包装【WPF团队推荐方案】,如下所示:

    1. public class SingleInstanceApplicationWrapper : WindowsFormsApplicationBase
    2. {
    3. private SignleInstanceApp WpfApp;
    4. public SingleInstanceApplicationWrapper()
    5. {
    6. IsSingleInstance = true;
    7. }
    8. protected override bool OnStartup(Microsoft.VisualBasic.ApplicationServices.StartupEventArgs eventArgs)
    9. {
    10. SplashScreen splashScreen = new SplashScreen("image/09.jpg");
    11. splashScreen.Show(true);
    12. WpfApp = new WpfLearningOne.SignleInstanceApp();
    13. WpfApp.Run();
    14. return false;
    15. }
    16. }

    c. 方法三:使用跨线程通信的Mutex来进行控制

    程序集资源

  7. 将图片,文本等放入项目后,自动会转换成程序集资源

  8. 查找资源可以使用
  9. Application.GetResourceStream方法,其中的Uri资源,可以使用相对路径进行查找new Uri(“CommonControler/CommonContentWindow.xaml”, UriKind.Relative)
  10. 使用packURI,可以查找其他应用程序集资源
  11. pack://appliaction:, , , /Images/test.jpg 查找本程序集中的资源
  12. pack://appliaction:, , , /AssemblyName/Images/test.jpg 查找其他
  13. 针对可替换的,文件比较大的,声音或视频资源,可以使用文件的Content属性,设置Copy属性为Copy Always