C# winform窗体UI美化后实现最大化、最小化、还原、关闭、窗体移动等等
在做winform窗体UI美化时,一般都需要将窗体的FormBorderStyle属性设为None,之后窗体就会没有最上面的标题栏,然后按照UI进行界面的设计。美化的代价就是窗体本来标题栏的相关操作,例如双击自动最大化,再次双击又恢复正常大小,以及上窗体关闭、最小化等功能就都需要自己实现对应的功能。
以自己做得项目为例,窗体的最上面一块就是类似或者需要实现标题栏功能的,用panel划定一个范围。之后所有的操作都是重写panel里面的方法。
实现最大化和还原
如果UI设计的是有按钮,那就最好。
/// <summary>
/// 窗体 最大化,正常
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_Max_Click(object sender, EventArgs e)
{
if (this.WindowState == FormWindowState.Maximized)
{
this.WindowState = FormWindowState.Normal;
Image maxbackImage = Resources.最大化;//这里图片调用UI设计的图片
btn_Max.BackgroundImage = maxbackImage;
}
else
{
this.WindowState = FormWindowState.Maximized;
Image normalbackImage = Resources.正常;
btn_Max.BackgroundImage = normalbackImage ;
}
}
如果为了美观UI连按钮也没有设计,那就模仿标题栏自带的功能,重写panel的MouseDoubleClick方法
/// <summary>
/// 窗体 最大化,正常