Отображение скрытого окна WPF

c#
Вопрос: В окне WPF я хочу скрыть его, показать другое окно, используя ShowDialog, затем отобразить первое окно. Когда я это сделаю: this.Hide(); var window2 = new Window2(); window2.ShowDialog(); this.Show(); Первое окно открывается как пустое и пустое окно. Что не так в этой технике? Когда я это сделаю: var window2 = new Window2(); Visibility = Visibility.Collapsed;

Вопрос:

В окне WPF я хочу скрыть его, показать другое окно, используя ShowDialog, затем отобразить первое окно.

Когда я это сделаю:

this.Hide(); var window2 = new Window2(); window2.ShowDialog(); this.Show();

Первое окно открывается как пустое и пустое окно.

Что не так в этой технике?

Когда я это сделаю:

var window2 = new Window2(); Visibility = Visibility.Collapsed; window2.ShowDialog(); Visibility = Visibility.Visible;

Первое окно выходит из приложения.

Что не так в этой технике?

Лучший ответ:

Вы не должны использовать скрыть в WPF. Это WinForms Shenanigans.

Сделайте это вместо этого:

this.Visibility = Visibility.Collapsed; … this.Visibility = Visibility.Visible;

Кроме того, я видел ваш комментарий выше, что это не работает. Однако я запустил новый проект WPF, сделал это, собрал и запустил его. Оно работает.

Обратите внимание, что ошибок нет.

enter image description here

Ответ №1 Window2 window2 = new Window2(); this.Visibility = Visibility.Collapsed; window2.ShowDialog(); this.Visibility = Visibility.Visible; Ответ №2foreach (Window window in App.Current.Windows) { if (!window.IsActive) { window.Show(); } }

Прекрасно работает для меня

Ответ №3

В моем случае выработал следующий код:

new HiddenWindow { WindowStyle = WindowStyle.None, AllowsTransparency = true, Opacity = 0.0 }.Show(); Ответ №4

Проверьте Application.Current.ShutdownMode. Закрытие окна, которое вы назначаете Application.Current.MainWindow, приведет к отключению приложения, если для параметра Application.Current.ShutdownMode установлено значение OnMainWindowClose. В вашем случае я бы установил его на OnExplicitShutdown. Вы можете увидеть значения по умолчанию, установленные в app.xaml вашего проекта приложения WPF.

Оцените статью
Добавить комментарий