我想使我的Form1最大化,但不是全屏,因为最大限度地采用整个屏幕,同时留下专用于底部任务栏的空间。为了澄清,我希望我的应用程序可以解决传统上其他应用程序的工作原理,例如Chrome或MS Office套件最大化时。绝对没什么特别的。
为了让我的应用程序动态调整大小,我已经计算出按钮适合应用程序的高度和宽度的位置。但是,我很快发现我的应用程序处于最大化状态,实际上继续在任务栏下面(或者反过来,任务栏完全被应用程序切断 - 它是全屏幕)。我最底部的按钮实际上被任务栏切断了。在尝试不同的表单设置后,我发现这似乎完全是WindowState = FormWindowState.Maximized设置的结果。
我尝试了各种途径来抵消这种行为。首先,我尝试以编程方式调整最大边界大小,同时将Form的MaximumSize设置为" 0,0" (默认"根据需要调整大小"设置)。我在Form_Load事件中有这段代码:
Me.MaximizedBounds = Screen.PrimaryScreen.WorkingArea
和
Me.MaximizedBounds = Screen.FromHandle(Me.Handle).WorkingArea
然而,即使确认工作区域高度小于表格高度,这些也没有任何影响。事实上,经过进一步的测试,除了手动在表单属性中设置MaximumSize为100,100之外,我还无法以编程方式更改最大化边界。有人在这里有建议吗?
我还尝试更改WindowsState = FormWindowState.Manual并以这种方式重新调整表单高度:
Width = Screen.PrimaryScreen.WorkingArea.Width
Height = Screen.PrimaryScreen.WorkingArea.Height
这使得窗体更接近专用尺寸,但使窗口可移动,不再覆盖整个传统上最大化的屏幕(它在所有边上留下大约20个像素的填充)。
最后,我对如何做到这一点感到有点失落,并且非常感谢一些澄清。我尝试了其他代码,我很乐意在论坛上分享,以及类似的问题,但没有一个帮助我实现我的目标行为。我对Windows 10的最新更新有一个锁定的任务栏,如果这些细节有所不同。