powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Команда Window.Close() не закрывает окно
4 сообщений из 4, страница 1 из 1
Команда Window.Close() не закрывает окно
    #38092750
wpf noob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример из книги Троелсена Язык программирования C# 2010 и платформа .NET 4 - 2010
страница 1045

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
private void OnClick(object sender, RoutedEventArgs e)
        {
            File.WriteAllText("YourXaml.xaml", txtXamlData.Text);
            Window myWindow = null;
            try
            {
                using (Stream sr = File.Open("YourXaml.xaml", FileMode.Open))
                {
                    myWindow = (Window)XamlReader.Load(sr);
                    myWindow.ShowDialog();
                    myWindow.Close();
                    myWindow = null;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }


Тыкаем на кнопку - открывается новый диалог из XAML'a, что в txtXamlData написан.
Вопрос такой - там есть myWindow.Close(), те окно должно открываться и сразу закрываться, но появившийся диалог не исчезает - почему?
...
Рейтинг: 0 / 0
Команда Window.Close() не закрывает окно
    #38092803
Lord British
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wpf noob,

потому, что ShowDialog не возвращает управление, соответственно Close не вызывается.
...
Рейтинг: 0 / 0
Команда Window.Close() не закрывает окно
    #38094198
wpf noob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Lord British,
а зачем тогда нужно вызывать метод CLose(), и myWindow = null ?
...
Рейтинг: 0 / 0
Команда Window.Close() не закрывает окно
    #38094375
enigmatic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wpf noob,

> появившийся диалог не исчезает - почему?
Поставьте бряку на myWindow.Close(); и посмотрите, останавливается ли отладка на нём после вызова myWindow.ShowDialog();

> а зачем тогда нужно вызывать метод CLose(), и myWindow = null ?
Возможно, это такая хитрая страховка от утечек памяти

Вообще, лучше у Троелсена спросить, кроме шуток.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Команда Window.Close() не закрывает окно
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]