关注此帖后:How to use Acrylic Accent in Windows 10 Creators Update?
我已在Creators Update上成功将丙烯酸添加到我的应用中。不幸的是,当在Windows中的颜色设置中禁用透明度时,我的应用程序的背景要么是Light Theme中的深灰色,要么是几乎完全黑暗的黑暗主题,尽管我设置了我的网格背景& #39; s使窗口透明的相对面板上方:Background =" {ThemeResource CommandBarBackground}"。
有没有人知道如何在创建者更新中实现后备颜色,以便在禁用透明度时,背景会切换到设置的原始背景颜色。
答案 0 :(得分:1)
有没有人知道如何在创建者更新中实现后备颜色,以便在禁用透明度时,背景会切换到设置的原始背景颜色。
AdvancedEffectsEnabled中有UISettings Class属性,表示系统透明效果设置是否已启用。当它返回false
时,您可以将背景重置为原始背景颜色。
启用或禁用系统高级UI效果设置时,还会发生AdvancedEffectsEnabledChanged事件。您可以将此事件与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线程中可能不会引发AdvancedEffectsEnabledChanged事件。要更改背景颜色,我们需要CoreDispatcher.RunAsync方法。