我有一个WinForms应用程序(.NET 4),需要全屏显示或最大化无边框。全屏Windows窗体超出屏幕尺寸
在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
与形式很好地工作。
任务栏总是在窗口的顶部出现,即使它被设置为自动隐藏。另请注意,根据[WorkingArea's](https://msdn.microsoft.com/en-us/library/system.windows.forms.screen.workingarea(v = vs.110).aspx)文档,它* doesn' t *在自动隐藏模式下考虑折叠任务栏的大小。您是否尝试创建Kiosk应用程序? –
@实用性:更新了屏幕截图。以全尺寸打开图像并查看顶部菜单栏和底部状态条。边界形式似乎从小于零(Y1)开始,似乎结束于大于工作区域高度(Y2)。 –
FWIW,我试了你的代码,并在两种情况下(调试或不),它在我的显示器上按预期工作,没有裁剪。你的代码似乎很好,但不知道为什么它不适用于你的情况。 –