アプリの特定の機能について、ユーザーのアクセント カラーを取得し、特定の量だけ明るくして、アプリ内で使用するテーマ カラーの薄いバージョンを提供したいと考えています。
どうすればこれを達成できるか知っている人はいますか?
ありがとう。
アプリの特定の機能について、ユーザーのアクセント カラーを取得し、特定の量だけ明るくして、アプリ内で使用するテーマ カラーの薄いバージョンを提供したいと考えています。
どうすればこれを達成できるか知っている人はいますか?
ありがとう。
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 の値を調整します。