アプリでいくつかのアプリケーションスタイルを作成していますが、キーで使用する明示的な色をいくつか定義したいと考えています。 WPF XAMLでは、RGB/ARGB値を定義するSolidColorBrushを作成します。 Xamarin XAMLでは、XAMLで同じ色を定義するためにこれを16進数に変換する必要がありますか?以下のスニペットは、WPF XAMLからのものです。
<SolidColorBrush
x:Key="blueColor">
<SolidColorBrush.Color>
<Color
A="255"
R="50"
G="150"
B="225" />
</SolidColorBrush.Color>
</SolidColorBrush>
Xamarin.Forms
は、クロスプラットフォームのColor
クラスを提供します。
Xamlからの使用:
色は、ここに示す定義済みの色名または16進表記を使用して、Xamlで簡単に参照することもできます:
<Label Text="Sea color" BackgroundColor="Aqua" />
<Label Text="RGB" BackgroundColor="#00FF00" />
<Label Text="Alpha plus RGB" BackgroundColor="#CC00FF00" />
<Label Text="Tiny RGB" BackgroundColor="#0F0" />
<Label Text="Tiny Alpha plus RGB" BackgroundColor="#C0F0" />
Colorクラスは、色のインスタンスを構築するためのいくつかのメソッドを提供します
Xamarinの WorkingWithColors サンプルによると、次のようなことができます。
<Color
x:Key="BlueColor">
<x:Arguments>
<x:Double>.4</x:Double> <!-- R/255 -->
<x:Double>.62</x:Double> <!-- G/255 -->
<x:Double>.95</x:Double> <!-- B/255 -->
<x:Double>.2</x:Double> <!-- A: 0.0-1.0 -->
</x:Arguments>
</Color>
彼らの例はアルファチャンネルの使用を示していませんが、私はそれをテストしました、そして2017年5月30日現在、それはうまく機能しているようです。
ただし、これは文書化されていないようです。 Xamarin.Forms "Colors" guide は、上記のコードに付属していますが、これについても言及していないため、予告なしに変更される可能性があります。
質問に直接答えると、リソースからRGBで色を指定するために、xamlでcannot x:FactoryMethod = "FromRgb"を指定します。これを回避するには、「FromHex」アプローチを使用して色を指定し、必要に応じて変換する必要があります。
<Color x:Key="somethingGreenish" x:FactoryMethod="FromHex">
<x:Arguments>
<x:String>#97cd75</x:String>
</x:Arguments>
</Color>