什么代码控制WPF应用程序的启动?

Mat*_*ley 9 .net wpf

更具体地说,如何在WPF中设置一个像这样的启动序列,在启动时没有显示窗口,但是存在通知图标?

Eam*_*nne 14

要运行,WPF需要一个Application对象.当您Run在该对象上执行时,应用程序进入无限循环:事件循环负责处理用户输入和任何其他OS信号.

换句话说,您可以在WPF应用程序中包含自定义Main函数就好了; 它只需要看起来像这样:

[STAThread]
public static void Main(string[] args) {
    //include custom startup code here

    var app = new MyApplication();//Application or a subclass thereof
    var win = new MyWindow();//Window or a subclass thereof
    app.Run(win); //do WPF init and start windows message pump.
}
Run Code Online (Sandbox Code Playgroud)

这是一篇关于使用这种方法的一些问题的文章:Wpf Application类:Overview和Gotcha.特别是,你可能想要设置类似的东西Application.ShutdownMode.这种方法让您可以在任何WPF代码运行之前随意做任何事情 - 但更重要的是,我希望它能够阐明WPF应用程序的启动方式.


Dan*_*rth 9

StartupUriApplicationApp.xaml文件的根标记中删除该属性,并在Application.Startup事件处理程序中添加要执行的代码.

  • 值得注意的是,在你正在做这样的事情的应用程序中,你可能想要设置`ShutdownMode = ShutdownMode.OnExplicitShutdown;`正如Eamon在他的回答中提到的那样. (2认同)