[英]Remove Title Bar from Windows Form (Windows 10 style)
我有一个非常简单的类,该类继承自System.Windows.Forms.Form并删除了WS_CAPTION窗口样式。 它可以完美地在Windows XP和7中运行。 在Windows 10中,仍会绘制标题栏,使用自定义标题栏控件时,标题栏看上去很难看。
我知道可能有几种方法可以完成这种外观,但是出于多种原因选择了它。 我对替代方法不感兴趣-这不是我在这里提问的目的。
我的问题是什么导致在Windows 10和Windows 7中呈现这种方式的差异? 不同之处不仅在于风格。 即使WS_CAPTION标志已被删除,标题栏似乎仍以某种容量呈现。
class BorderlessForm : System.Windows.Forms.Form
{
protected override System.Windows.Forms.CreateParams CreateParams
{
get
{
var _CreateParams = base.CreateParams;
_CreateParams.Style &= ~0x00C00000; // remove WS_CAPTION
return _CreateParams;
}
}
}
Windows 7屏幕截图(所需外观与MSDN描述一致):
Windows 10屏幕截图(外观与MSDN描述不一致):
您正在观察的不是标题栏,而是边框的大小。
我的问题是什么导致在Windows 10和Windows 7中呈现这种方式的差异?
原因是在不同版本的Windows上实现了不同的外观。
如果您有兴趣即使在Windows 10上也要摆脱大小调整边框,请执行以下操作:删除WS_THICKFRAME
标志。
另外(可能更可取),您可以将窗体的FormBorderStyle
更改为其他值。 测试最适合您的方法。
但是,没有什么东西可以精确地定义整个表格边界。 这取决于外观(主题)。 从技术上讲,您不能期望表单的边界在不同的实现下不会有所不同。 您只能通过测试来确保。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.