如何自定义WPF应用程序的启动?

ozxc1zmp  于 2023-10-22  发布在  其他
关注(0)|答案(3)|浏览(175)

当创建新的WPF应用程序项目时,会自动生成MainWindow.xamlApp.xaml及其相应的代码。在App.xaml中,有一个属性用于定义最初运行的窗口,默认情况下,该属性为StartupUri="MainWindow.xaml"
我在同一个项目中创建了一个新的Dispatcher类。在启动时,我希望构造类Dispatcher的示例,然后运行它的一个方法。该方法实际上将创建并显示MainWindow窗口。那么如何修改App.xamlApp.xaml.cs才能实现它呢?或者,如果App不能实现,我应该如何实现它?谢谢.

thigvfpy

thigvfpy1#

您可以从App.xaml中删除StartupUri属性。
然后,通过在App.xaml.cs中为OnStartup()创建一个重写,您可以创建Dispatcher类的新示例。
下面是我的快速app.xaml.cs实现:

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
      base.OnStartup(e);

      new MyClassIWantToInstantiate();
    }
  }
}

更新

我最近发现了this workaround的一个bug,如果你使用这种方法来自定义应用程序启动,突然找不到任何应用程序级的资源。

cwdobuhd

cwdobuhd2#

尝试使用Startup事件(类Application)-MSDN
您可以在此事件处理程序中显示MainWindow-在创建Dispatcher示例之后。

u7up0aaq

u7up0aaq3#

1.在App.xaml中,用Startup事件的订阅替换StartupUri。
1.使用App.xaml.cs中的事件。
比如说,
Startup=. xaml中的“Application_Startup”。

public partial class App : Application
{
    private void Application_Startup(object sender, StartupEventArgs e)
    {
        // Create the startup window
        MainWindow wnd = new MainWindow();
        // Do stuff here, e.g. to the window
        wnd.Title = "Something else";
        // Show the window
        wnd.Show();
    }
}

相关问题