У меня есть приложение WinForms (.NET 4), которое должно отображаться либо полноэкранным, либо максимизированным без границ.Полный экран Windows Form выходит за пределы размеров экрана
Используя следующий код в Form_Shown
события:
#if (DEBUG)
var debug = true;
#else
var debug = false;
#endif
this.Text = "";
this.ControlBox = false;
this.ShowInTaskbar = true;
//this.TopMost = debug;
this.TopLevel = true;
this.FormBorderStyle = FormBorderStyle.None;
if (debug) { this.Bounds = Screen.FromControl(this).WorkingArea; }
else { this.WindowState = FormWindowState.Maximized; }
Если вы внимательно посмотрите на скриншот ниже, верхние и нижние участки отрезаны несколько пикселей. Кроме того, если это значение максимизировано, окно по-прежнему не охватывает панель задач.
Обратите внимание, что у меня есть только один монитор. Нет дополнительных дисплеев.
Любые предложения относительно того, как решить два вышеуказанных вопроса, будут оценены.
UPDATE: Код выше, кажется, работает нормально с формами без MenuStrip
или StatusStrip
.
всегда на панели задач появляется поверх окон, даже если он установлен в Auto-Hide. Также обратите внимание, что согласно документации [WorkingArea's] (https://msdn.microsoft.com/en-us/library/system.windows.forms.screen.workingarea (v = vs.110) .aspx), она * doesn ' t * учитывайте размер сложенной панели задач в режиме Auto-Hide. Вы пытаетесь создать приложение для киоска? –
@utility: обновлен снимок экрана. Откройте изображение в полном размере и посмотрите на верхнюю панель меню и нижнюю полосу состояния. Вероятно, формы Bounds начинаются с нуля (Y1) и, кажется, заканчиваются на высоте, превышающей высоту рабочей области (Y2). –
FWIW, я пробовал ваш код, и в обоих случаях (отладка или нет) он работал, как ожидалось, на моем мониторе, без обрезки. Ваш код кажется прекрасным, но не знаю, почему он не работает в вашем случае. –