Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 22.08.2018
Сообщений: 6
1

Окно без рамок выходит за границы экрана при развертывании

22.08.2018, 14:01. Просмотров 1930. Ответов 2
Метки wpf (Все метки)


Здравствуйте!

Извиняюсь, если спрашиваю банальщину. Данная проблема обсуждалось не один раз и не на одном форуме, однако её решение я так и не нашел.

Имеется WPF Form с свойствами
XML
1
2
AllowsTransparency="True" 
WindowStyle="None"
Уж очень хотел попробовать реализовать окно с собственным дизайном. Кнопки "свернуть", "развернуть" и "закрыть" реализовал с помощью StackPanel и обычных Button. Их функционал описал в W_Main:
C#
1
2
3
4
5
6
7
8
public W_Main()
     {
            InitializeComponent();
            MinimizeButton.Click += (s, e) => WindowState = WindowState.Minimized;
            MaximizeButton.Click += (s, e) => WindowState = WindowState == WindowState.Maximized ? WindowState.Normal : 
            WindowState.Maximized;
            CloseButton.Click += (s, e) => Close();
     }
Суть в следующем: если WindowState равен Maximized, окно, как и ожидается, разворачивается на весь экран. Вот только оно становится на несколько пикселей шире экрана со всех границ и вдобавок закрывает панель задач, что нежелательно, но допустимо.

Пробовал указывать максимальные размеры окна следующим образом:
C#
1
2
this.MaxHeight = SystemParameters.WorkArea.Height;
this.MaxWidth = SystemParameters.WorkArea.Width;
В результате опять же получил нежелательную ситуацию: левая и верхняя границы окна расположились как надо, а вот правая и нижняя "не дотягиваются" до краев экрана, буквально на несколько пикселей.

Использовать SystemParameters.MaximizedPrimaryScreenWidth - тоже не вариант, т.к. имеется два монитора с разным разрешением.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.08.2018, 14:01
Ответы с готовыми решениями:

TextView выходит за границы экрана
Здравствуйте. Как правильно указать параметры width/height, чтобы Текст внутри TextView не вылазил...

TextEdit выходит за границы экрана в GridLayout
Доброго времени суток. Делаю такую разметку: <?xml version="1.0" encoding="utf-8"?> <GridLayout...

Часть рабочего стола выходит за границы экрана
Ноутбук lenovo g500. Windows 7 Professional Хотел поиграть в игрушку 2002 года. Были некоторые...

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

__________________
Помогаю в написании курсовых работ и дипломов здесь.
Записывайтесь на профессиональные курсы С#-разработчиков‌
2
Почетный модератор
Эксперт С++
5842 / 2851 / 390
Регистрация: 01.11.2011
Сообщений: 6,903
22.08.2018, 16:14 2
Лучший ответ Сообщение было отмечено SatanaXIII как решение

Решение

Цитата Сообщение от DarkTowelie Посмотреть сообщение
Пробовал указывать максимальные размеры окна следующим образом
Не смотря на то, что заданный вами стиль окна не предусматривает рамку, она все же присутствует.
Попробуйте вычислять размеры окна следующим образом:
C#
1
2
this.MaxHeight = SystemParameters.WorkArea.Height + SystemParameters.BorderWidth * 2;
this.MaxWidth = SystemParameters.WorkArea.Width + SystemParameters.BorderWidth * 2;
1
0 / 0 / 0
Регистрация: 22.08.2018
Сообщений: 6
23.08.2018, 11:32  [ТС] 3
Да, вы правы, рамка присутствуют. Если задать свойству AllowsTransparency значение "False", в дизайнере окна эта рамка видна.
Однако, к сожалению, предложенное решение не привело к желаемому результату. Проблема осталась той же.

Заметил следующую вещь: при задании свойству ResizeMode значение NoResize, окно адекватно развертывается на любом мониторе. Решением, однако, я это назвать затрудняюсь, т.к. в данном случае манипуляции с окном, такие как развертывание по двойному клику и изменение размера растягиванием мышью, придется писать самостоятельно.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.08.2018, 11:32

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь или здесь.

При разрешении 1920x1080 рабочий стол выходит за границы монитора
после перехода (просто вставил видяху, установил драйвера которые прилагались к ней, и подключил...

Выходит окно при загрузке Windows XP!
Здравствуйте! У меня такая проблема. При каждом запуске Windows XP выходит окно: Программу...

При затухании экрана выходит ошибка, что файл не выбран
При затухании экрана выходит такая ошибка и ничего не происходит. Как это исправить?

При закрытии экрана выходит синий экран 0x00000019 -ntoskrnl.exe
С недавнего времен, а именно с 09,07,2014 при выключении подстветки ноута(когда не работаешь с ним)...


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

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

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