web-dev-qa-db-ja.com

Xamarinを使用してXAMLでRGBカラーを指定する

アプリでいくつかのアプリケーションスタイルを作成していますが、キーで使用する明示的な色をいくつか定義したいと考えています。 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>
8

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クラスは、色のインスタンスを構築するためのいくつかのメソッドを提供します

  • 名前付き色-Red、Green、Blueなど、一般的な名前付き色のコレクション。
  • FromHex-HTMLで使用される構文に似た文字列値(例: "00FF00")。
  • アルファは、オプションで最初の文字のペア( "CC00FF00")として指定できます。
  • FromHsla-色相、彩度、明度の2倍の値、オプションのアルファ値(0.0〜1.0)。
  • FromRgb-赤、緑、青のint値(0〜255)。
  • FromRgba-赤、緑、青、およびアルファ整数値(0〜255)。
  • FromUint-argbを表す単一のdouble値を設定します。

参照: Xamarin.Formsでの色の使用

9
SushiHangover

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 は、上記のコードに付属していますが、これについても言及していないため、予告なしに変更される可能性があります。

3
j.f.

質問に直接答えると、リソースからRGBで色を指定するために、xamlでcannot x:FactoryMethod = "FromRgb"を指定します。これを回避するには、「FromHex」アプローチを使用して色を指定し、必要に応じて変換する必要があります。

<Color x:Key="somethingGreenish" x:FactoryMethod="FromHex">
    <x:Arguments>
        <x:String>#97cd75</x:String>
    </x:Arguments>
</Color>
2
The Senator