4

我有一个 Windows Phone 8 应用程序,它在控件中呈现一些 HTML(来自 RSS/Atom 提要)WebBrowser。为了让这个 HTML 看起来更原生,我通过一个简单的 mobilizer 运行它,通过重写 HTML 结构和设置一些 CSS,使布局、字体、图像等看起来更原生。

这工作正常。但是,我想确保 mobilizer 生成的 CSS 将用户当前主题的颜色应用到背景、文本、链接等。虽然我可以在 XAML 文档中应用主题颜色,但我还没有找到一种方法从 C# 中获取这些颜色。这可能吗?如果是这样,怎么做?

4

1 回答 1

2

您可以获得此处所示的强调色。

// Determine the accent color.
Color currentAccentColorHex = (Color)Application.Current.Resources["PhoneAccentColor"];

如果您想要的话,这不是获取颜色名称的最漂亮方法,但您可以使用与 WP7 和 WP8 兼容的方法。

string currentAccentColor = "";

switch (currentAccentColorHex.ToString())
{
    case "#FF1BA1E2": currentAccentColor = "blue"; break;
    case "#FFA05000": currentAccentColor = "brown"; break;
    case "#FF339933": currentAccentColor = "green"; break;
    case "#FFE671B8": currentAccentColor = "pink"; break;
    case "#FFA200FF": currentAccentColor = "purple"; break;
    case "#FFE51400": currentAccentColor = "red"; break;
    case "#FF00ABA9": currentAccentColor = "teal (viridian)"; break;

    // Lime changed to #FFA2C139 in Windows Phone OS 7.1.
    case "#FF8CBF26": 
    case "#FFA2C139": currentAccentColor = "lime"; break;

    // Magenta changed to # FFD80073 in Windows Phone OS 7.1.
    case "#FFFF0097": 
    case "#FFD80073": currentAccentColor = "magenta"; break;

    // #FFF9609 (previously orange) is named mango in Windows Phone OS 7.1.
    case "#FFF09609": currentAccentColor = "mango (orange)"; break;

    // Mobile operator or hardware manufacturer color
    default: currentAccentColor = "custom eleventh color"; break;
}

// Write the current accent color.
textBlock2.Text = "accent color = " + currentAccentColor;
于 2013-09-23T20:05:45.190 回答