6

我一直认为使用 iTunes 或 Visual Studio 2012 等程序的表单边框是在没有边框样式的情况下完成的,并且按钮作为关闭按钮被绘制为图像。

视觉工作室 2012 音乐喷气机

但是,一旦我的 Visual Studio 没有响应并且边框更改为基本的 Windows 边框。

视窗

如何获得自己的表单边框?在 C# 中可能吗?

4

2 回答 2

3

您正在看到“幽灵窗口”,这是 Windows 窗口管理器创建的用于替换死窗口的窗口。您会在标题栏中看到“未响应”。当然,该窗口不必具有相同的自定义样式,Windows 无法知道如何正确地做到这一点。

您可以使用 Spy++ 实用程序查看另一个应用程序的窗口属性。VS2012 实际上确实使用了带有标题栏的常规窗口样式。他们如何定制它是一个很好的秘密,我怀疑他们拦截了 WM_NCPAINT,这是一个很难自己实现的消息。使用无边框窗口肯定更容易。

于 2012-12-10T20:15:45.560 回答
0

除了@Hans 的帖子:

使用 WPF,您可以将 windowstyle 设置为 none,如下所示:

<Window WindowStyle="None">

然后你可以实现你自己的按钮。

于 2012-12-10T20:51:31.317 回答