我有一个非常简单的类,它继承自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;
}
}
}
Run Code Online (Sandbox Code Playgroud)
Windows 7截图(所需外观与MSDN描述一致):
Windows 10截图(不良外观与MSDN描述不一致):
您所观察到的不是标题栏,而是大小调整边框.
我的问题是在Windows 10与Windows 7中呈现这种方式之间的差异是什么?
原因是在不同版本的Windows上实现不同的外观.
如果您有兴趣如何摆脱Windows 10上的大小调整边框:删除WS_THICKFRAME标志.
或者(也许更可取)您可以将表单更改FormBorderStyle为其他值.测试任何最适合你的方法.
然而,没有什么能够精确地定义整个表单边框.这取决于外观和感觉(主题).从技术上讲,你不能指望表单的边框在不同的实现下不会有所不同.您只能通过测试来确保.
| 归档时间: |
|
| 查看次数: |
1070 次 |
| 最近记录: |