WPF窗口透明度(包括非

有什么办法让WPF窗口透明而不会丢失非客户区域(边框,标题栏,关闭/最小化/最大化按钮)?

将'AllowsTransparency'设置为'true'需要将'WindowStyle'设置为'None'(如本答案中所述),这将删除非客户区域。

其中一位WPF开发人员在博客中介绍了WPF中透明窗口的工作方式,以及为什么很难实现对非客户区域透明度的支持。

无论你的窗口风格如何,透明的WPF窗口都没有任何可见的非客户区域。 对于许多想要创建自定义窗口形状的场景来说,这很好,但对于只想“淡入”普通窗口的人来说,这可能很烦人。

那么,WPF专用的解决方案似乎是不可能的。

如预期的那样,调用本地SetLayeredWindowAttributes函数并传递WPF窗口的句柄和LWA_ALPHA不起作用。

我能想到的唯一另一种方法是在Win32(或可能是WinForms)窗口中托管WPF内容。 但是,我怀疑尝试这样做会导致空域问题。

WPF分层窗口在不同的操作系统上具有不同的功能... WPF不支持透明色键,因为WPF无法保证呈现所请求的确切颜色,特别是在渲染是硬件加速的情况下。

我不确定是否正确阅读上述内容,但听起来像试图承载WPF内容的透明度是不可能的。

有任何想法吗?

透明的Notepad2窗口


流体套件有一个玻璃窗口,我认为这是你在追求的东西。


您可以使用名为WPF Chrome的ms库来定制非客户端区域。 检查这篇文章:'自定义窗口铬'。

有了这个库,你可以使铬透明并改变更多的东西。

链接地址: http://www.djcxy.com/p/4411.html

上一篇: WPF Window Transparency (including Non

下一篇: Problems with Prolog's DCG