【问题标题】:How to customize startup of WPF application?如何自定义 WPF 应用程序的启动?
【发布时间】:2012-11-16 22:33:50
【问题描述】:

创建新的 WPF 应用程序项目时,会自动生成 MainWindow.xamlApp.xaml 及其相应的代码隐藏类。在App.xaml 中有一个属性定义最初将运行哪个窗口,默认情况下它是StartupUri="MainWindow.xaml"

我在同一个项目中创建了一个新的Dispatcher 类。在启动时,我希望构造该类 Dispatcher 的实例,然后运行其方法之一。该方法实际上会创建并显示MainWindow 窗口。那么如何修改App.xamlApp.xaml.cs 才能实现呢?或者,如果App做不到,我应该如何实现呢?谢谢。

【问题讨论】:

    标签: wpf startup


    【解决方案1】:

    您可以从 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 的一个错误,如果您使用此方法自定义应用程序启动,突然找不到应用程序级资源。

    【讨论】:

      【解决方案2】:

      尝试使用启动事件(应用程序类)-MSDN

      您可以在此事件处理程序中显示 MainWindow - 在您创建 Dispatcher 实例之后。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-15
        • 2011-07-08
        • 1970-01-01
        • 2013-04-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多