2015-06-02 18 views
0
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 и не показывает их вообще. Мой логин показан отлично.ShowDialog не отображается WPF

Как вы можете видеть, я уже пробовал различные рекомендации в других темах по этой теме 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) 
     { 

     } 
    } 
} 

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

Является ли это опечатка 'MainWindow.ShowDialog();'? Потому что похоже, что это должно быть 'mainWindow.ShowDialog()' Откуда вы вызываете этот код? – Silvermind

+0

"App.xaml.cs". Опечатка да, отредактирует это. –

+0

Где в App.xaml.cs, Application_Startup(); Конструктор App()? Исключения типаInitialization могут быть «проглочены» в конструкторе App. – Silvermind

ответ

0

Это то, что вам нужно сделать в случае, если вы не сделали это уже:

  1. Вынуть StartupUri из приложения XAML-файл

  2. Установить запуск обработчика в приложение XAML:

  3. Добавьте 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(); 
    } 
    
  4. Один последний шаг. WPF установил первое созданное окно в качестве MainWindow в приложении. Покажите внутри вашего Login.xaml.cs, чтобы MainWindow присвоил значение null, чтобы у вас появились следующие окна.

    if (App.Current.MainWindow == this) 
        { 
         App.Current.MainWindow = null; 
        } 
    
+0

Мгновенно отключается –

+0

Я отредактировал свой ответ. Пожалуйста, проверьте сейчас –

+0

Спасибо Olaru за внесение изменений. По какой-то причине форматирование кода перестало работать для меня. –

Смежные вопросы