自定义表单边框样式

6
我一直认为像iTunes或Visual Studio 2012这样的程序使用的表单边框是没有样式和按钮的,关闭按钮是以图像的形式绘制出来的。
然而,有一次我的Visual Studio没有响应,边框变成了基本的Windows边框。
我怎样才能获得自己的表单边框?在C#中是否可能实现?

1
请尝试这两个链接:http://www.codeproject.com/Articles/18351/A-Form-with-Customized-Caption-Bar-and-Flexible-Bo 和 http://customerborderform.codeplex.com/ - KF2
2个回答

3
您正在看到“幽灵窗口”,这是Windows窗口管理器创建的用于替换无响应窗口的窗口。您会在标题栏中看到“未响应”。当然,该窗口不会具有相同的自定义样式,因为Windows不知道如何正确地实现它。
您可以使用Spy ++实用程序查看另一个应用程序的窗口属性。事实上,VS2012确实使用常规的窗口样式和标题栏。他们如何定制它是一个被严格保密的秘密,我怀疑他们截获了WM_NCPAINT消息,这是一条相当难以自己实现的消息。使用无边框窗口肯定更容易。

0

回复 @Hans 的帖子:

使用 WPF,您可以将窗口样式设置为无,如下所示:

<Window WindowStyle="None">

那么您可以实现自己的按钮。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接