如何在MainWindow之前显示外部WPF?

时间:2014-03-28 16:55:00

标签: c# wpf

我的WPF应用程序在显示应用程序的主窗口之前调用一个单独的项目来处理登录过程。这会产生问题并导致“应用程序关闭”错误,因为应用程序中的FIRST窗口已关闭。如何在显示主窗口之前处理登录过程?我发现的每一次搜索都会提到Prism或MEF ......这是我无法使用的。

3 个答案:

答案 0 :(得分:1)

如果您想从应用程序的一开始就控制所有内容,则需要创建自己的主方法并将其用作"启动对象" (见项目属性)。 More details can be found in another SO answer,但这是它的本质:

[STAThread]
public static void Main(string[] args)
{
    // Do anything you like before running the main window.
    // ...

    // Proceed with usual application flow.
    var app = new MyApplication();
    var win = new MyWindow();
    app.Run(win);
}

答案 1 :(得分:0)

要防止应用程序关闭错误,您可以将Application.ShutdownMode更改为OnExplicitShutdown。并在需要时明确调用Application.Shutdown Method来关闭您的应用程序。

答案 2 :(得分:0)

您是否尝试过将代码添加到App.xaml.cs文件中?在主窗口打开之前,有些地方可以放置代码。除了构造函数之外,您还可以在App.xaml文件中为Startup事件分配处理程序:

<Application x:Class="CarSystem.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
         DispatcherUnhandledException="App_DispatcherUnhandledException" 
         Exit="Application_Exit" 
         Startup="Application_Startup" 
         StartupUri="MainWindow.xaml">

当然,同一个文件中的Main方法也可以将代码放入其中。