相关疑难解决方法(0)

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

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

    WindowStyle="None"
    ResizeMode="NoResize"
    Background="Transparent"
    u:WinUtil.EnableGlass="True"
    ShowInTaskbar="False"
Run Code Online (Sandbox Code Playgroud)

但是根据这些属性,玻璃杯根本不显示:我的窗户只有透明的背景.如果我设置ResizeModeCanResize,玻璃被显示,但我不希望窗口可调整大小.

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

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

所以我的问题是:

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

欢迎任何建议

windows wpf aero-glass

3
推荐指数
1
解决办法
6061
查看次数

标签 统计

aero-glass ×1

windows ×1

wpf ×1