0

アプリの特定の機能について、ユーザーのアクセント カラーを取得し、特定の量だけ明るくして、アプリ内で使用するテーマ カラーの薄いバージョンを提供したいと考えています。

どうすればこれを達成できるか知っている人はいますか?

ありがとう。

4

1 に答える 1

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}" />

これにより、アルファ チャネルが調整され、オーバーレイされたものがすべて表示されるようになります。色自体を調整したい場合は、R、G、B の値を調整します。

于 2013-08-01T01:37:34.840 に答える