减轻用户的口音颜色

时间:2013-07-31 16:03:21

标签: c# windows-phone-7 colors windows-phone-8 themes

对于我的应用程序中的某个功能,我想检索用户的强调色,然后将其减轻一定量,以提供在应用程序中使用的主题颜色的较淡版本。

有谁知道我怎么能做到这一点?

感谢。

1 个答案:

答案 0 :(得分:0)

将以下内容放入app.xaml.cs

private void setAccentResources()
{
    var accent = (Color)Current.Resources["PhoneAccentColor"];
    var accent80 = accent;
    var accent60 = accent;
    var accent40 = accent;
    var accent20 = accent;

    accent80.A = (byte)(accent.A * 0.8);
    accent60.A = (byte)(accent.A * 0.6);
    accent40.A = (byte)(accent.A * 0.4);
    accent20.A = (byte)(accent.A * 0.2);

    Resources.Add("PhoneAccentFullColor", new SolidColorBrush(accent));
    Resources.Add("PhoneAccent80Color", new SolidColorBrush(accent80));
    Resources.Add("PhoneAccent60Color", new SolidColorBrush(accent60));
    Resources.Add("PhoneAccent40Color", new SolidColorBrush(accent40));
    Resources.Add("PhoneAccent20Color", new SolidColorBrush(accent20));
}

然后您可以像访问它一样访问它:

 <control  Brush="{StaticResource ResourceKey=PhoneAccent40Color}" />

这会调整Alpha通道,以便它开始显示覆盖的任何内容。如果要调整颜色本身,可以调整R,G和B值。