我有一个非常简单的类,继承自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描述不一致的外观):
Controlbox = false
会得到与我在这里展示的相同结果。 - Russell Trahan