gpt4 book ai didi

wpf - 在无边框 WPF 窗口上启用 Vista 玻璃效果

转载 作者:可可西里 更新时间:2023-11-01 14:42:20 27 4
gpt4 key购买 nike

我写了一个附加属性,我可以在窗口上设置它以将玻璃框架扩展到客户区(使用 DwmExtendFrameIntoClientArea API)。在大多数情况下它工作正常。现在我希望我的窗口是无边框的,所以我在我的窗口上设置了以下属性:

    WindowStyle="None"
ResizeMode="NoResize"
Background="Transparent"
u:WinUtil.EnableGlass="True"
ShowInTaskbar="False"

但是有了这些属性,玻璃根本就不会出现:我的窗口只有透明背景。如果我将 ResizeMode 设置为 CanResize,则会显示玻璃,但我不希望窗口可调整大小。

我怀疑这是因为玻璃效果是通过将非客户端框架扩展到客户端区域获得的:使用 WindowStyle = NoneResizeMode = NoResize,没有非客户端框架,所以没有什么可扩展的。当我启用调整大小时,它会在窗口周围创建一个框架,因此框架可以扩展。

我想应该可以通过设置适当的 WS_* 位来创建一个具有细边框、没有标题栏且不能调整大小的窗口,但我不知 Prop 体是哪些位

所以我的问题是:

  1. 应该设置或取消设置哪些样式位以获得所需的外观和行为?
  2. 如何初始化窗口的样式位? Window 类似乎没有任何类似 Windows 窗体的 CreateParams 属性...在创建句柄后设置这些位是否可以?
  3. 我发现 HwndSource 类可能是问题 2 的答案,但如果您不是 Win32 专家,使用它似乎有点复杂...它是否是一个明智的解决方案我的问题?

欢迎任何建议

最佳答案

您是否尝试过使用 DwmEnableBlurBehindWindow ?这使您能够使窗口客户区的特定部分透明。

关于wpf - 在无边框 WPF 窗口上启用 Vista 玻璃效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1324398/

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