[英]ShowDialog not showing WPF
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点,并且根本不会显示它们。 我的登录名显示非常好。
如您所见,我已经在其他线程中就此主题this.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)
{
}
}
}
应用程式
<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>
如果您还没有这样做,这就是您需要做的:
从应用程序XAML文件中删除StartupUri
在应用程序XAML中设置启动处理程序:
在对话框show之后将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; }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.