Я хочу сделать что-то, что может быть немного сложно, поскольку это новая функция в Win 10 Creators Update: я хотел бы использовать новую функцию Acrylic Accent, чтобы сделать окна прозрачными в приложениях UWP. Я видел, что Microsoft уже представляет его в Groove и Film & TV в Fast Insider Ring.
Это код, который я разработал, используя примеры в 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
?
Я действительно был бы признателен за вашу помощь, спасибо.