Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;
var dialog = new Login();
dialog.ShowDialog();
var mainWindow = new MainWindow(dialog.success, DBInteraction.getPID(dialog.txtLoginUser.Text));
mainWindow.ShowDialog();
this.MainWindow = mainWindow;
if (mainWindow.ShowDialog() == true)
{
}
奇怪的是,如果我调试它,窗口永远不会显示它只是跳过那些showDialog点并且根本不显示它们。 我的登录完全正常。
正如您所看到的,我已经在其他主题中尝试了各种有关此主题的建议.MainWindow = mainWindow并将ShutdownMode设置为显式。
完整电话:
/// <summary>
/// Interaktionslogik für "App.xaml"
/// </summary>
public partial class App : Application
{
private void ApplicationStart(object sender, StartupEventArgs e)
{
Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;
var dialog = new Login();
dialog.ShowDialog();
var mainWindow = new MainWindow(dialog.success, DBInteraction.getPID(dialog.txtLoginUser.Text));
mainWindow.ShowDialog();
this.MainWindow = mainWindow;
if (mainWindow.ShowDialog() == true)
{
}
}
}
的App.xaml
<Application x:Class="Boosting.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Startup="ApplicationStart"
ShutdownMode="OnExplicitShutdown">
<Application.Resources>
</Application.Resources>
</Application>
答案 0 :(得分:0)
如果您没有这样做,这就是您需要做的事情:
从Application XAML文件中删除StartupUri
在应用XAML中设置启动处理程序:
在对话框显示后将Show()
添加到MainWindow:
private void ApplicationStartup(object sender, StartupEventArgs e)
{
Current.ShutdownMode = ShutdownMode.OnExplicitShutdown;
var dialog = new Login();
dialog.ShowDialog();
var mainWindow = new MainWindow();
mainWindow.ShowDialog();
}
最后一步。 WPF在应用程序中将第一个创建的窗口设置为MainWindow。在Login.xaml.cs中显示将MainWindow设置为null,以便创建的下一个窗口优先。
if (App.Current.MainWindow == this)
{
App.Current.MainWindow = null;
}