如何使用Windows窗体在新的Visual Studio 2012主窗口中看到相同的alpha边框效果?它的窗户似乎发光。
答案 0 :(得分:8)
所以我不确定它是否是最好的方法,但是如果你使用Spy ++(32位)并且你在windows中查看,你可以看到在Visual Studio的主窗口下,你可以看到4个“VisualStudioGlowWindow”对象。
我在Spy ++中隐藏了这些消息,正如你想象的那样,4个窗口代表了表单周围的4个发光边框。进一步检查显示这4个“发光窗口”实现了WS_EX_LAYERED扩展窗口样式,因此在WPF中没有完成发光本身(据我所知)。
希望这可以解决一些问题。
答案 1 :(得分:1)
AFAIK你可以使用混合this chrome和自定义WPF边框的WPF来完成它。不确定是否可以使用WinForms,因为它的样式选项有限(与WPF相比)。无论如何they are using WPF。
答案 2 :(得分:0)
除非你想自己处理整个表格,否则你不能。因为Visual Studio 2010和Visual Studio 2012是在WPF之上编写的,所以使用Windows而不是表单。
答案 3 :(得分:0)
Visual Studio 2012使用本机Win32函数绘制其窗口边框。它与WPF或WindowsForms无关 - 您可以同时使用它们。
在主窗口顶部的透明窗口上渲染光晕。主窗口调用DWM API将玻璃区域设置为0.这样您就可以绘制原始边框和系统按钮。这是执行此操作的正确方法。
您可以查看WPF Shell的代码(http://archive.msdn.microsoft.com/WPFShell),了解如何调用DWM以删除玻璃。写入与WPF兼容的事实并不重要,因为您需要的只是窗口的句柄(IntPtr)。
如果您有WindowsForms代码库,请不要迁移到WPF。 WPF在最新的.NET框架版本中没有得到改进,并且由于其团队已集成到Windows 8团队中,因此没有改进或新功能的路线图。