【问题标题】:Borderless window with shadow and blurbehind带阴影和模糊的无边框窗口
【发布时间】:2017-04-05 06:48:18
【问题描述】:

我尝试了SetWindowCompositionAttribute 解决方案,效果很好,但没有阴影。
我尝试将 blurbehind + 在窗口上应用阴影与 DropShadow for WPF Borderless Window 结合起来,但在这里我遇到了 unfocus/focus 窗口失去透明度的问题。
是否可以使用模糊+阴影(以及一些关闭/最小/最大)制作无边框窗口?
示例:AMD Radeon 设置。是wpf吗?或自定义 c++ 解决方案。

【问题讨论】:

    标签: c# wpf xaml windows-10


    【解决方案1】:
    var accent = new AccentPolicy()
    {
      AccentState = AccentState.ACCENT_ENABLE_BLURBEHIND,
      AccentFlags = 0x20 | 0x40 | 0x80 | 0x100,
    };
    

    AccentFlags 的设置值将为您的窗口提供像 Windows 10 的菜单和日历一样的阴影效果

    【讨论】:

    • 我会试试的。是否可以设置自定义阴影(颜色等)?
    • 是的。它正在工作。我可以制作像 这样的光泽面板吗?
    • @ionmike 实际上我是从这个 [链接](pastebin.com/22nueJdZ) 中引用的,您可以看到 AccentFlags 值对应于四个边缘边框。由于此方法使用的是 windows 10 的原生 API,我认为无法进行太多详细的效果调整。但是您可以调整应用程序窗口的透明度和颜色以获得与 win10 的 类似的外观
    【解决方案2】:

    我知道如何在 XAML 中执行此操作,最好在 XAMl 中包含所有可视代码,在 C# 中包含逻辑代码。

    代码:

    //将 BorderThickness 设置为 0 表示无边框 //玩 DropDownShadowEffect

     <Border BorderBrush="color" BorderThickness="0" >
          <Border.Effect>
             <DropShadowEffect BlurRadius="10" Color="black" Direction="235" Opacity=".3" RenderingBias="Performance"  ShadowDepth="4" />
          </Border.Effect>
     </Border>
    

    希望这就是你要找的东西

    【讨论】:

    • 我认为它不会起作用。因为您正在尝试将阴影应用于“窗口区域”并且可以(或将)模糊。我正在尝试在窗口(dwm)上做原生模糊+阴影。
    • @ionmike,啊,是的,对于您想要的,您可能必须阅读控制模板,因为这些模板允许您更改几乎任何控制方式,但不确定实际窗口 - 抱歉跨度>
    猜你喜欢
    • 2019-01-10
    • 2016-04-22
    • 1970-01-01
    • 1970-01-01
    • 2020-07-09
    • 1970-01-01
    • 1970-01-01
    • 2012-02-15
    • 1970-01-01
    相关资源
    最近更新 更多