2014-10-27 3 views
0

У меня есть приложение WPF, для которого главное окно должно быть того же размера.Окно приложения WPF меняет размер

Поэтому я поставил в конструкторе:

Width = 1024; 
Height = 768;  
ResizeMode = ResizeMode.NoResize; 
WindowStyle = WindowStyle.None; 
Top = screenBounds.Top; 
Left = screenBounds.Left; 
SizeToContent = SizeToContent.Manual; 

screenBounds происходят из Screen.PrimaryScreen в большинстве случаев.

Я также подписался на SystemEvents.DisplaySettingsChanged и повторите процедуру выше, когда изменяется разрешение экрана.

В некоторых редких случаях это не работает, и окно приложения отображается в другом размере (например, 768x556), но событие смены разрешения экрана не запускалось. Я должен упомянуть, что в этой системе также есть хост VNC. Итак, мои вопросы: - Что может вызвать изменение размера окна WPF, которое не обнаружено событием смены разрешения экрана? - Как я могу заставить окно оставаться одинаковым положением и размером все время?

ответ

1

Я думаю, что-то вручную настройка размера в коде, но если вы действительно хотите, чтобы предотвратить это, я предлагаю вам установить:

this.MaxHeight = this.MinHeight = 768; 
this.MaxWidth = this.MinWidth = 1024; 

EDIT:

я узнал, что SystemEvents.DisplaySettingsChanged срабатывает при изменении пользователем настроек дисплея. Попробуйте использовать SystemEvents.DisplaySettingsChanging, который срабатывает при любом изменении настройки дисплея.

+0

ошибка ... и мой ответ другой как? –

+0

Думаю, мы ответили примерно в то же время. Поэтому я не копировал вас и ничего. – Tyress

+0

Нет размера, который никогда не устанавливается где-то еще в коде ... – Harry13

1

Установить максимальные и минимальные значения высоты и ширины?