我有一个非常简单的类,它继承自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描述不一致):
答案 0 :(得分:5)
您观察的不是标题栏,而是大小调整边框。
我的问题是在Windows 10与Windows 7中呈现方式之间的差异是什么?
原因是在不同版本的Windows上实现不同的外观。
如果您有兴趣如何在Windows 10上删除大小调整边框:删除WS_THICKFRAME
标记。
或者(也许更优选)您可以将表单的FormBorderStyle
更改为其他值。测试任何最适合你的方法。
然而,没有什么能够精确地定义整个表单边框。这取决于外观和感觉(主题)。从技术上讲,你不能指望表单的边框在不同的实现下不会有所不同。您只能通过测试来确保。