powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Не получается изменить размер окна в runtime.
2 сообщений из 2, страница 1 из 1
Не получается изменить размер окна в runtime.
    #38706846
TooHot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте!
Помогите, пожалуйста, решить проблему.
В комментариях к моему быдлокоду постараюсь все изложить.

Есть главное окно приложения:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
        public MainWindow()
        {
            //Необходимо отлавливать изменения разрешения экрана, т.к. {Binding Source={x:Static SystemParameters.WorkArea}, Path=Height}
            // и тому подобное
            // не работает при переподключении к RDP сессии с другим разрешением
            SystemEvents.DisplaySettingsChanged += SystemEvents_DisplaySettingsChanged;
            InitializeComponent();
        }

        private void Main_Loaded(object sender, RoutedEventArgs e)
        {
            ...
            //Второе окно State = normal, Style = none, ResizeMode = noresize, Left = 0, Top = 0 
            desktop = new Desktop();
            desktop.Show();
        }

        void SystemEvents_DisplaySettingsChanged(object sender, EventArgs e)
        {
            ...
            //При срабатывании нужно изменить размер второго окна, для чего вызываем функцию Resize во втором окне
            desktop.Resize();
        }



Второе окно (desktop)
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
        public Desktop()
        {
            //Устанавливаю размер окна ручками по размеру рабочей области (WorkArea), т.к. 
            Resize();
            InitializeComponent();
        }

        public void Resize()
        {
            //Тут происходит магия, недоступная моему пониманию: если вставить MessageBox, то он выводит правильную ширину и
            //при нажатии в нем кнопки OK, размер окна изменяется.
            //Если же убрать MessageBox, то размеры окна остаются прежние,
            MessageBox.Show(Convert.ToString(SystemParameters.WorkArea.Width));
            this.Width = SystemParameters.WorkArea.Width;
            this.Height = SystemParameters.WorkArea.Height;
        }



Прошу ткнуть носом, ибо уже наступал на такие же грабли и по непониманию ситуации приходилось делать лишние костыли.
...
Рейтинг: 0 / 0
Не получается изменить размер окна в runtime.
    #38706920
TooHot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос снят. Необходимо использовать делегат.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Не получается изменить размер окна в runtime.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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