【问题标题】:How to get UWP title bar default colors programmatically如何以编程方式获取 UWP 标题栏默认颜色
【发布时间】:2017-01-12 22:01:13
【问题描述】:

如何以编程方式获取 UWP 标题栏颜色?

我可以通过以下方式轻松设置自定义标题栏颜色:

ApplicationView.GetForCurrentView().TitleBar.BackgroundColor
ApplicationView.GetForCurrentView().TitleBar.ForegroundColor 

但是如何获取系统标题栏颜色呢? 例如。如果用户设置 在标题栏上显示颜色 选项并使用 黄色 作为 Windows 强调色,则 UWP 应用标题栏 BackgroundColor黄色。 但是ApplicationView.GetForCurrentView().TitleBar.BackgroundColor 返回null

Screenshot of win 10 color setting

【问题讨论】:

    标签: c# uwp


    【解决方案1】:

    它是 AccentColor。 您可以通过编程方式获取它

    var color = new UISettings().GetColorValue(UIColorType.Accent);
    

    或者试试

    var color = (Color)Resources["SystemAccentColor"];
    

    【讨论】:

    • 这还不够。我们必须知道“在标题栏上显示颜色”设置是否打开才能使用 AccentColor。
    • 你想达到什么目的?您可以设置CoreApplication.GetCurrentView().TitleBar.ExtendViewIntoTitleBar = true; 并制作自定义标题栏
    • 正确。这正是我的目标 - 创建自定义标题栏,它与原始标题栏非常相似,但有一些添加(例如添加按钮)。我需要获取原始标题颜色并在我的自定义标题栏中使用它。而且我找不到如何实现它,因为我不知道用户的“在标题栏上显示颜色”设置值。作为解决方法,我对标题和系统按钮使用默认的白色,但如果设置了“在标题栏上显示颜色”(并且标题在启动时闪烁),它与用户所需的颜色不匹配
    • 我认为你不必太严格。只需使用强调色。
    • 谢谢,但它没有回答问题:(在我们的办公室里只有一个人将此设置设置为 ON(默认为 OFF),因此我们牺牲了他(以及其他将此选项设置为 ON)希望在标题栏中看到一种古老的颜色,并为所有用户使用默认颜色(直到找到 100% 知道标题栏颜色的方法)。
    猜你喜欢
    • 2017-06-23
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 2017-04-13
    相关资源
    最近更新 更多