C# 如何在creators update中将回退颜色应用于丙烯酸

C# 如何在creators update中将回退颜色应用于丙烯酸,c#,xaml,uwp,windows-composition-api,fluent-design,C#,Xaml,Uwp,Windows Composition Api,Fluent Design,在完成这篇文章之后: 我已成功地在Creators更新中将丙烯酸添加到我的应用程序中。不幸的是,当在Windows的“颜色设置”中禁用透明度时,我的应用程序的背景在“亮”主题中要么是非常深的灰色,要么在“暗”主题中几乎完全是漆黑的,尽管我将网格背景设置在使窗口透明的相对面板上方:background=”{ThemeResource命令barbackground}” 是否有人知道如何在创建者更新中实现回退颜色,以便在禁用透明度时,背景切换到设置的原始背景颜色 是否有人知道如何在创建者更新中实现回退

在完成这篇文章之后:

我已成功地在Creators更新中将丙烯酸添加到我的应用程序中。不幸的是,当在Windows的“颜色设置”中禁用透明度时,我的应用程序的背景在“亮”主题中要么是非常深的灰色,要么在“暗”主题中几乎完全是漆黑的,尽管我将网格背景设置在使窗口透明的相对面板上方:background=”{ThemeResource命令barbackground}”

是否有人知道如何在创建者更新中实现回退颜色,以便在禁用透明度时,背景切换到设置的原始背景颜色

是否有人知道如何在创建者更新中实现回退颜色,以便在禁用透明度时,背景切换到设置的原始背景颜色

有一个属性指示是否启用系统透明度效果设置。当该属性返回
false
时,可以将背景重置为原始背景色

当启用或禁用系统高级UI效果设置时,也会发生一个事件。您可以将此事件与
AdvancedEffectsEnabled
属性组合使用,如下所示:

UISettings uiSettings = new UISettings();
uiSettings.AdvancedEffectsEnabledChanged += UiSettings_AdvancedEffectsEnabledChangedAsync;

private async void UiSettings_AdvancedEffectsEnabledChangedAsync(UISettings sender, object args)
{
    if (sender.AdvancedEffectsEnabled)
    {
        await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
        {
            //TODO: Apply Acrylic Accent
        });
    }
    else
    {
        await this.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, () =>
        {
            //TODO: Reset Background
        });
    }
}

请注意,事件可能不会在UI线程中引发。要更改背景颜色,我们需要方法。

查看您的答案,它说它使用的是Windows 10 SDK 16190。我认为它不适用于创建者更新SDK(15063)因为Creators更新中没有可用的丙烯酸画笔。哦,对不起,是的,只有秋季Creators更新才可用。您可以尝试的一种方法是订阅
Window.Current.Activated
,当
WindowActivationState
被禁用时,在模糊上方显示另一个背景。@JustinXL您的suggestion确实有点帮助,因为现在应用程序不对焦时会显示正确的颜色。不幸的是,当应用程序再次对焦时,它会显示错误的颜色。我想知道为什么它会显示错误的颜色。你应该有一个覆盖模糊元素的矩形,并使用该矩形作为后备背景。@ColinKiama你在尝试吗o向XAML屏幕添加透明度?创建者更新中是否提供该选项?