Приложение WPF с модальным MainWindow - PullRequest
0 голосов
/ 06 ноября 2018

Мне интересно, есть ли какие-либо недостатки при отображении модального главного окна в приложении WPF с .ShowDialog () вместо Show ().

Это обычный способ вручную отобразить главное окно:

private void Application_Startup(object sender, StartupEventArgs e)
{
    // the usual way to show the mainwindow
    new MainWindow().Show();
}

Вот что я хочу сделать:

private void Application_Startup(object sender, StartupEventArgs e)
{
    // what i want to do
    new MainWindow().ShowDialog();
}

Я хочу запустить приложение WPF из надстройки стороннего приложения, которая может вызывать статические методы из внешних .NET DLL. Поэтому я создаю DLL как дополнение, которое запускает мое приложение WPF внутри нового домена приложений. Это работает нормально, пока пользователь ничего не делает в 3-х стороннем приложении, в противном случае он вылетит. Я могу предотвратить это, если я покажу главное окно моего приложения как модальное диалоговое окно, потому что это блокирует окно приложения 3. party.

1 Ответ

0 голосов
/ 06 ноября 2018

Что ж, потенциальным недостатком является тот факт, что метод ShowDialog() не возвращается, пока диалоговое окно не будет закрыто, что означает, что вы не сможете взаимодействовать с «предыдущим» окном в это время.

Но в вашем случае это, кажется, именно то, что вы хотите. Так как в вашем конкретном сценарии это работает так, как вы хотите, я бы остановился на использовании ShowDialog().

...