Полноэкранная форма Windows выходит за рамки экрана
У меня есть приложение WinForms (.NET 4), которое нужно показывать либо в полноэкранном режиме, либо в развернутом виде без границ.
Используя следующий код в 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; }
Если вы внимательно посмотрите на скриншот ниже, верхняя и нижняя области обрезаются на несколько пикселей. Кроме того, если развернуто, окно все еще не покрывает панель задач.
Обратите внимание, что у меня подключен только один монитор. Нет дополнительных дисплеев.
Буду признателен за любые предложения о том, как решить эти два вопроса выше.
ОБНОВЛЕНИЕ: Код выше, кажется, работает нормально с формами без MenuStrip
или же StatusStrip
,
1 ответ
Вот код, который я использую для полноэкранного режима. Я создаю FullScreen
свойство для моей формы, и когда мне нужно, я устанавливаю this.FullScreen = true;
private bool fullScreen = false;
[DefaultValue(false)]
public bool FullScreen
{
get
{
return fullScreen;
}
set
{
fullScreen = value;
if (value)
{
//this.SuspendLayout();
this.WindowState = FormWindowState.Normal;
FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
WindowState = FormWindowState.Maximized;
//this.ResumeLayout(true);
}
else
{
this.Activate();
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
}
}
}