【发布时间】:2017-08-29 17:58:17
【问题描述】:
我想做一些可能有点棘手的事情,因为它是 Win 10 创意者更新中的一项新功能:我想使用新的 Acrylic Accent 功能在 UWP 应用程序中制作透明的 Windows。 我看到微软已经在 Fast Insider Ring 的 Groove 和 Film & TV 中引入了它。
这是我开发的代码,使用 Win Dev Center 中的示例和 Stack Overflow 上的其他答案:
public sealed partial class MainPage : Page
{
// Some other things
private void initializeInterface()
{
/// Applying Acrylic Accent
LayoutRoot.Background = null;
GaussianBlurEffect blurEffect = new GaussianBlurEffect()
{
Name = "Blur",
BlurAmount = 5.0f,
BorderMode = EffectBorderMode.Hard,
Optimization = EffectOptimization.Balanced,
Source = new CompositionEffectSourceParameter("source"),
};
LayoutRoot.Background = null;
var rootVisual = ElementCompositionPreview.GetElementVisual(LayoutRoot as UIElement);
var compositor = rootVisual.Compositor;
var factory = compositor.CreateEffectFactory(blurEffect);
var effectBrush = factory.CreateBrush();
// This is the effect I wanted to use, the "Acrylic Accent", as it is called by MS itself.
var backdropBrush = compositor.CreateHostBackdropBrush();
effectBrush.SetSourceParameter("source", backdropBrush);
var blurVisual = compositor.CreateSpriteVisual();
blurVisual.Brush = effectBrush;
ElementCompositionPreview.SetElementChildVisual(LayoutRoot as UIElement, blurVisual);
}
}
其中LayoutRoot 是用作根面板的RelativePanel。
但有些东西不起作用:什么?
如何将其应用于UIElement,例如Page 或Panel?
非常感谢您的帮助,谢谢。
【问题讨论】:
标签: c# uwp windows-composition-api