【问题标题】:Detect whether Acrylic Brush is Supported in the device or not检测设备是否支持亚克力刷
【发布时间】:2017-07-12 17:03:22
【问题描述】:

根据微软的文档,

亚克力会自动调整其外观以适应各种不同的 设备和上下文。

在高对比度模式下,用户继续看到熟悉的背景 他们选择的颜色代替丙烯酸。此外,两者 背景亚克力和应用内亚克力显示为纯色

When the user turns off transparency in Personalization settings
When battery saver mode is activated
When the app runs on low-end hardware

此外,只有背景丙烯酸会替换它的透明度和 纯色纹理

When an app window on desktop deactivates
When the UWP app is running on phone, Xbox, HoloLens or tablet mode

我有两个关于亚克力刷的问题。

1) 是否可以检测何时禁用低端设备的丙烯酸刷?

2) 是否有任何事件可以让用户订阅启用/禁用丙烯酸笔刷?因为在所有应用程序中都有一个可用于切换丙烯酸笔刷的设置。

PS:我不想使用后备颜色。

【问题讨论】:

  • 对于不支持丙烯酸笔刷的设备(禁用或不支持),丙烯酸笔刷会为每个笔刷定义一个备用颜色..如果您需要定义自己的丙烯酸笔刷如果要覆盖默认后备颜色,请指定后备颜色..
  • 是的,确实有一个备用值。如果不支持,我要做的是加载不同的主题字典。

标签: xaml uwp win-universal-app uwp-xaml acrylic-material


【解决方案1】:

可以借助 UISettings.AdvancedEffectsEnabled 布尔值检查透明效果模式。

还有一个事件 UISettings.AdvancedEffectsEnabledChanged 用于订阅透明度模式设置的更改。

    UISettings settings = new UISettings();

    private bool _IsTransparencyEnabled = settings.AdvancedEffectsEnabled;

    settings.AdvancedEffectsEnabledChanged += settings_AdvancedEffectsEnabledChanged;

    private void settings_ColorValuesChanged(UISettings sender, object args)
    {
        settings = (UISettings)sender;
        _IsTransparencyEnabled = settings.AdvancedEffectsEnabled;
        //TODOD: Do other necessary actions when transparency has changed.
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多