В настоящее время у меня есть способ сделать именно то, что я спрашиваю, но результаты очень неэффективны для некоторых пользователей.Некоторые пользователи сообщали, что он сделал это так, как если бы он был свернут (окно не отображалось никогда, но все еще на панели задач), некоторые сообщили, например, в сверхшироком 21: 9, что он будет максимизироваться только слева от ширины 1080p 16: 9, но у меня есть32: 9 сверхвысокое и не было проблем.
Мой текущий поток:
Получить размеры экрана, исключая нагрузку на панель задач:
MaximizedBounds = Screen.FromHandle(mForm.Handle).WorkingArea;
(mForm = Application.OpenForms [0], для поддержки из любого потока и т. Д.)
- Из другого потока / функции / запуска класса:
Form1.mForm.Invoke(new MethodInvoker(() => Form1.mForm.WindowState = FormWindowState.Maximized));
- Этодолжно привести к максимизированному окну с надлежащим разрешением, но это не так: /
Что я бы предпочел:
- НЕ требуется получать размеры экрана назагрузите, поэтому используйте что-нибудь из официального кода Microsoft, либо DllImport, .NET Framework Code, либо msapi, чтобы получить PROPER MaximizedBounds for Formsless Forms.(formborderstyle.none)
Я установил MaximizedBounds, потому что если я этого не сделаю, приложение будет полноэкранным на весь экран, а не «максимизирует», как традиционные приложения, но в конечном итоге сделает большеПолноэкранный стиль видеоплеера.
Используя мой экран 32: 9 и экран моего ноутбука 4k 16: 9 в режиме расширенного отображения, мне удалось воссоздать проблему
Этапы перепроизводства:
- Откройте приложение, оставьте его на экране, в котором оно впервые запустилось в
- Разверните приложение (будет работать нормально)
- Разверните и переместите его на другой экран
- Нажмите на максимизировать, ваш результат должен быть, как указано выше.
Это означает, Maximize Bounds при загрузке получает активные границы только один раз, как и ожидалось, но из-за того, что я выполняю изменение Form Style для другого класса и другого потока, я не могу на самом деле редактировать свойство MaximizedBounds для него каждый раз, когда я хочу максимизировать, так какприсваиватьты не публичный.