【发布时间】:2017-05-12 07:21:21
【问题描述】:
微软最近公布了他们新的“流利”设计语言,其中一部分是"acrylic" material。此效果使元素透明并模糊背景。它既可以应用于窗口,使底层窗口的部分发光(背景丙烯酸),也可以应用于窗口中的单个元素,以便其他控件发光(应用内丙烯酸)。它在概念上和视觉上与 macOS 上的活力非常相似。
它是作为 XAML 中的特殊画笔实现的,但我想知道有没有办法在常规 Win32 应用程序中使用它(背景丙烯酸)?效果看起来非常类似于应用于开始菜单和任务栏(由SetWindowCompositionAttribute 处理)的模糊,这让我相信它可能可以通过类似的标志来激活。
一个子问题:我想知道它是如何实现的?它只是您可以在窗口上设置的标志,然后在 DWM 中应用(如 SetWindowCompositionAttribute,或如 Vista 和 7 中的 Aero Glass)?还是 UWP 对 DWM 有某种控制,并且可以设置着色器来控制它的渲染方式?在 Vista 下,当 DWM 第一次被引入时,它与 WPF 有共同的代码,并且它实际上共享(类似 DirectX)的缓冲区和场景图,所以这样的技巧是可能的。 magifier 实用程序可以magnify WPF apps sharply like vector images,但该功能后来丢失了。 MS 在该页面上呈现“丙烯酸”的方式(作为不同的图层,并作为 XAML 画笔实现)让我认为您必须以某种方式将图层注入 DWM 场景图中,这将使其更难或无法使用来自 Win32。
【问题讨论】:
标签: uwp dwm acrylic-material fluent-design