我一直认为使用 iTunes 或 Visual Studio 2012 等程序的表单边框是在没有边框样式的情况下完成的,并且按钮作为关闭按钮被绘制为图像。
但是,一旦我的 Visual Studio 没有响应并且边框更改为基本的 Windows 边框。
如何获得自己的表单边框?在 C# 中可能吗?
您正在看到“幽灵窗口”,这是 Windows 窗口管理器创建的用于替换死窗口的窗口。您会在标题栏中看到“未响应”。当然,该窗口不必具有相同的自定义样式,Windows 无法知道如何正确地做到这一点。
您可以使用 Spy++ 实用程序查看另一个应用程序的窗口属性。VS2012 实际上确实使用了带有标题栏的常规窗口样式。他们如何定制它是一个很好的秘密,我怀疑他们拦截了 WM_NCPAINT,这是一个很难自己实现的消息。使用无边框窗口肯定更容易。
除了@Hans 的帖子:
使用 WPF,您可以将 windowstyle 设置为 none,如下所示:
<Window WindowStyle="None">
然后你可以实现你自己的按钮。