【问题标题】:Override user's accent color in UWP在 UWP 中覆盖用户的强调色
【发布时间】:2020-01-31 01:28:47
【问题描述】:

在我的应用程序的 UWP 中,是否有一种单线方法可以覆盖用户的强调色?我一直在寻找这个,但显然必须为用户强调色的每种变化创建一个字典。我想做的只是将它从用户选择的任何一个更改为另一个来自 Window 的默认强调色。

我正在为本地企业构建一个应用程序,对他们来说更重要的是在应用程序上显示自己的颜色,而不是配置为使用哪台计算机。幸运的是,它们的“重音”是一种非常接近 Window 的黄色强调色的颜色,因此将应用程序中使用的强调色更改为这种颜色会很有帮助。

【问题讨论】:

  • 我对“单线方式”和“我想做的只是将其从用户选择的任何一种更改为 Window 的默认强调色中的另一种”感到困惑。您能否提供有关它的更多详细信息以及您的预期行为?
  • @Faywang-MSFT 单线将是只需要一行的东西,比如RequestedTheme="Light",它会覆盖用户的主题(深色/浅色)偏好。同样,我想知道是否有像这样短的东西来更改用户的应用程序的强调颜色,例如RequestedAccent="Yellow"(据我所知不存在)或ApplicationSettings.Color = Color.Yellow。跨度>
  • 目前没有方法可以像你说的那样覆盖强调色,你只能使用document中的方法来改变强调色。

标签: c# uwp


【解决方案1】:

您正在寻找的是 ColorPaletteResources API。 通过使用它,您可以覆盖应用程序中的任何系统颜色,包括强调颜色本身。 它需要 Win 10 1809 或更高版本。

然而,它似乎存在一些错误:通过我过去已经完成的一些测试,它似乎只在 XAML 中使用时才有效(或在页面构造函数中的 InitializeComponent() 之前)和它显然只适用于口音。

但就目前而言,此 API 是覆盖系统颜色的最直接方式。

最好的问候。

【讨论】:

    【解决方案2】:

    据我所知,没有单行,您需要覆盖每个行,如下所示:

    <Application.Resources>
        <ResourceDictionary>
            <Color x:Key="SystemAccentColor">#107C10</Color>
        </ResourceDictionary>
    </Application.Resources>
    

    【讨论】:

      猜你喜欢
      • 2020-10-11
      • 1970-01-01
      • 1970-01-01
      • 2015-10-28
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多