Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
Ereona
369 / 130 / 18
Регистрация: 16.07.2010
Сообщений: 341
1

Минимизация и закрытие основного окна вместе с диалоговым

20.06.2011, 09:45. Просмотров 1452. Ответов 5
Метки нет (Все метки)

Всем добрый день.
Нужно сделать, чтобы основное окно минимизировалось и закрывалось вместе с диалоговым.
Минимизацию я сделала таким образом:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public partial class MyDialogWindow : Window     
{  
public MyDialogWindow()
        {
            if (Application.Current != null)
            {
                Owner = Application.Current.MainWindow;
            }
            InitializeComponent();
        }
        private void Window_StateChanged(object sender, EventArgs e)
        {
            if (Owner != null)
            {
                if ((this.WindowState == WindowState.Minimized) || (this.WindowState == WindowState.Normal))
                {
                    Owner.WindowState = this.WindowState;
                    this.Visibility = System.Windows.Visibility.Visible;
                }
            }
        }
//еще тут есть код, устанавливающий this.DialogResult = true, например, так:
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            this.DialogResult = true;
            this.Close();
        }
}
А закрытие - так:
C#
1
2
3
4
5
6
7
8
9
            MyDialogWindow wnd = new MyDialogWindow();
            if (wnd.ShowDialog() == true)
            {
                //какой-то код
            }
            else
            {
                Application.Current.MainWindow.Close();
            }
Проблемы начинаются, если в минимизированном состоянии диалогового окна нажать кнопку "Закрыть". Тогда главное окно не закрывается, и вообще такое чувство, что ShowDialog() ничего не возвращает. Как исправить код, чтобы главное окно в любом случае закрывалось?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.06.2011, 09:45
Ответы с готовыми решениями:

Закрытие основного окна программы
Хочу что бы при нажатии кнопки закрывалось основное окно моей программы. Во...

Как закруглить укглы у основного окна?
Собственно, сабж.

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

Закрытие окна
this.DialogResult = (MessageBox.Show("Вы действительно хотите выйти из...

Закрытие окна.
Я знаю как убить процесс окна. Вот только незнаю как его закрыть. В WinApi...

5
kenny69
burning1ife
1413 / 1235 / 292
Регистрация: 21.09.2008
Сообщений: 3,409
Записей в блоге: 9
20.06.2011, 12:15 2
попробуй обрабатывать событие WindowClosing диалогового окна и в нем устанавливай DialogResult в зависимости от какой-нибудь bool переменной.
1
Ereona
369 / 130 / 18
Регистрация: 16.07.2010
Сообщений: 341
20.06.2011, 12:18  [ТС] 3
Я думала об этом, но на самом деле есть еще дополнительные параметры, от которых зависит, нужно ли закрывать основное окно. Разве что передавать их в диалоговое окно в конструкторе или после его создания. Есть ли другой способ?
0
kenny69
burning1ife
1413 / 1235 / 292
Регистрация: 21.09.2008
Сообщений: 3,409
Записей в блоге: 9
20.06.2011, 14:11 4
Цитата Сообщение от Ereona Посмотреть сообщение
Я думала об этом, но на самом деле есть еще дополнительные параметры, от которых зависит, нужно ли закрывать основное окно
в WindowClosing
C#
1
if (не надо закрывать) e.Cancel = true;
0
Ereona
369 / 130 / 18
Регистрация: 16.07.2010
Сообщений: 341
20.06.2011, 14:17  [ТС] 5
Это в коде основного окна надо написать? Не выйдет, само окно не знает, должно ли оно закрываться. Сейчас это сделано так:
C#
1
2
3
4
5
6
7
8
9
10
            MyDialogWindow wnd = new MyDialogWindow();
            if (wnd.ShowDialog() == true)
            {
                //какой-то код
            }
            else
            {
                if (надо закрывать)
                    Application.Current.MainWindow.Close();
            }
0
kenny69
burning1ife
1413 / 1235 / 292
Регистрация: 21.09.2008
Сообщений: 3,409
Записей в блоге: 9
20.06.2011, 14:24 6
Цитата Сообщение от Ereona Посмотреть сообщение
само окно не знает, должно ли оно закрываться
Не вижу препятствий сделать так, чтобы оно знало. И закрывать по DialogResult'у MyDialogWindow или какой-нибудь переменной в MyDialogWindow
0
20.06.2011, 14:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2011, 14:24

Закрытие окна WPF
Новое окно инициализируется следующим образом: Link Link...

Закрытие диалогового окна MVVM
Помогите пожалуйста разобраться, если кто-нибудь знает: Очень тяжело идет...

Перемещение мыши и заголовка окна приложения вместе на С#
Здравствуйте! Cледующий код написан на С++ В обработчике события движения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru