gpt4 book ai didi

c# - 无边框 WPF 窗口上没有玻璃效果的原生 Aero 模糊

转载 作者:可可西里 更新时间:2023-11-01 08:19:37 25 4
gpt4 key购买 nike

我知道有人提出并回答了类似的问题。然而,我的问题是由三部分组成的。

为了这个问题的目的,请记住以下几点:

  • 我是一名业余爱好者,早期大学本科学习计算机科学。我不太擅长复杂的编程,但我能理解大多数术语。
  • 这是一个使用 VB.NET 在 Visual Studio 中创建的 WPF 项目,但由于语言的相似性,我可以同样轻松地阅读 C#。
  • 这是我第一次尝试任何 DWM API。

1。将Aero Glass应用于无边框窗口

首先,是否可以在无边框窗口背景中使用玻璃效果?如果是这样(我相信是这样),这是如何完成的?

此外,由于 Windows 8 和更新版本不再使用半透明玻璃效果,是否仍可以在这些操作系统上完成此操作?

2。在没有玻璃的情况下保持原生模糊效果

我想要平滑的原生 DWM 模糊效果,但我不想要光滑的玻璃覆盖,我不想要用户主题设置中预定义的窗口颜色。

3。自定义模糊半径和位置

是否可以仅将此效果应用于窗口的特定部分?更重要的是,是否可以调整模糊效果的强度(半径)?

编辑 - 截图示例

应要求,我发布了一些我希望达到的效果示例。

Current Program

上图是我的 WPF 应用程序(仍在开发中)的实际屏幕截图。其极简主义设计在很大程度上依赖于移动动画和窗口大小调整。

Blurred Program

使用一些 photoshop 技巧,我渲染了上面的图像,展示了我想要创建的效果,完全我想要的方式。请注意以下几点:

  • 模糊的半径(强度)比通常的 Aero 模糊效果高得多
  • 模糊只在 window 的一部分可见
  • 模糊不从桌面的绿色主题继承其颜色

最佳答案

<强>1。将Aero Glass应用于无边框窗口

由于您要实现的与其说是玻璃效果,不如说是透明+模糊,您可以使用以下方法在窗后进行模糊。

Windows 7:您可以使用 DwmEnableBlurBehindWindow在窗后模糊。

Window 8:自从 Windows 8 中删除了 DwmEnableBlurBehindWindow 后,我还没有找到可行的解决方案。

Windows 10:您可以使用 SetWindowCompositionAttribute在窗后模糊。

<强>2。在没有玻璃的情况下保持原生模糊效果

以上解决方案只会在窗口后面应用模糊效果,由窗口来定义透明度和颜色。

3。自定义模糊半径和位置

使用这些方法,您只能在整个窗口下方进行模糊处理,您可以自行决定在窗口中要透明的部分使用 alpha channel 。我认为您也无法定义模糊半径。

关于c# - 无边框 WPF 窗口上没有玻璃效果的原生 Aero 模糊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31151539/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com