从Windows 7开始,如果移动应用程序的标题栏到屏幕顶部,就会自动最大化效果。到了Windows 11,移动应用程序顶部会显示一个操作栏,能够有更多的操作。见下图,请问无边框窗体的移动如何也显示这个效果???问了群里,说是有个控件啥的能实现这个效果:
使用API模拟移动标题栏即可。
private const int VM_NCLBUTTONDOWN = 0XA1;//定义鼠标左键按下
private const int HTCAPTION = 2;
/// <summary>
/// 模拟鼠标移动窗体标题栏,用于主窗体能够有移动到屏幕顶部最大化效果
/// </summary>
/// <param name="form">窗体</param>
public static void MouseDownEffect(Form form)
{
ReleaseCapture();
SendMessage(form.Handle, VM_NCLBUTTONDOWN, HTCAPTION, 0);
}
如果想要有移动无边框窗体到屏幕顶部显示最大化那个效果,需要设置FormBoderStyle = Sizeable,且MaximizeBox = true;