Color 構造体

定義

アルファ、赤、緑、および青のチャネルで色を記述します。

public value class Color
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
struct Color
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
public struct Color
var color = {
a : /* Your value */,
r : /* Your value */,
g : /* Your value */,
b : /* Your value */
}
Public Structure Color
<Color ...>predefinedColor</Color>
- or -
<Color ...>#rgb</Color>
- or -
<Color ...>#argb</Color>
- or -
<Color ...>#rrggbb</Color>
- or -
<Color ...>#aarrggbb</Color>
- or -
<Color ...>sc#scR,scG,scB</Color>
- or -
<Color ...>sc#scA,scR,scG,scB</Color>
- or -
<object property="predefinedColor"/>
- or -
<object property="#rgb"/>
- or -
<object property="#argb"/>
- or -
<object property="#rrggbb"/>
- or -
<object property="#aarrggbb"/>
- or -
<object property="sc#scR,scG,scB"/>
- or -
<object property="sc#scA,scR,scG,scB"/>
継承
Color
属性

Windows の要件

デバイス ファミリ
Windows 10 (10.0.10240.0 で導入)
API contract
Windows.Foundation.UniversalApiContract (v1.0 で導入)

XAML ResourceDictionary で Color 値をリソースとして定義するための構文を次に示します。 通常、これは、 Colors クラスの値として提供されている 250 以上の色の 1 つではない色を定義していて、アプリ UI の複数の領域で同じ色を使用する強制として XAML リソース システムを使用する場合にのみ必要です。 XAML リソースを定義するときに必要な x:Key 属性に注意してください。

<Application.Resources>
  ...
  <Color x:Key="SlightlyOffBlue">#FF0000E8</Color>
</Application.Resources>
<!-- example reference to the resource, make sure is a property that is really Color not Brush-->
      <ColorAnimation Storyboard.TargetName="mySolidColorBrush"
        Storyboard.TargetProperty="Color" To="{StaticResource SlightlyOffBlue}" Duration="0:0:4"/>

このコードは、 SolidColorBrush 値と Color 値の双方向コンバーターを示しています。 これは、データ バインディングの Converter プロパティで使用できる IValueConverter パターンを実装し、SolidColorBrush ソースを Color ターゲットにバインドし、その逆を行うことができるため、データ バインドのシナリオに役立ちます。 このコードをコンテキストで確認するには、 SwapChainPanel サンプルのソースを参照してください。

class BrushConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        return new SolidColorBrush((value is Color) ? (Color)value : Colors.Black);
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        return (value is SolidColorBrush) ? (value as SolidColorBrush).Color : Colors.Black;
    }
}

注釈

Color は、A (アルファ)、R (赤)、G (緑)、B (青) の 4 つのチャネルを持つ色を表すWindows ランタイム構造です。 各値は、値 0 から 255 の Byte 型として格納されます。

色の値は、次の機能とシナリオで使用されます。

  • 開始画面と一般的な UI の色 ( SecondaryTile.BackgroundColorUISettings.UIElementColor など)。 これらは JavaScript で使用できます。
  • Windows 8 インク システムの色の値。 具体的には、 InkDrawingAttributes.Color です。 これは JavaScript で使用できます。
  • C++、C#、または Visual Basic を使用した XAML UI と UWP アプリの色の値 (特にブラシの場合)。 これらの API は JavaScript では使用できません。
  • Windows.UI.Text 名前空間で、テキストを表すインターフェイスに使用される色の値を定義します。 これらの API は JavaScript では使用できません。

色の値と XAML 定義

Color の最も頻繁なアプリケーションは、C++、C#、または Visual Basic とその XAML UI 定義を使用して、UWP アプリの一部として UI 要素に色関連のプロパティを定義することです。

Colors クラスでは 、さまざまな定義済みの Color 値を静的プロパティとして使用できます。 これらのプロパティは、名前付き Color を設定するために XAML で使用される属性文字列形式と一致するコードで Color 値を設定する場合に便利です。 たとえば、 Colors.AliceBlue プロパティは、XAML の使用法 <SolidColorBrush Color="AliceBlue" />から Color と等しい Color を返します。 Color の値を使用して、 Color と等しい比較を行うこともできます。

ほとんどの XAML UI シナリオでは、色は UIElement のプロパティ値として直接使用されません。 代わりに、Color は Brush ( SolidColorBrush または LinearGradientBrush) のコンポーネント値として使用されます。 ただし、Brush 型を使用すると XAML 短縮形が有効になり、名前付き色文字列または ARGB フォームに解析できる書式指定文字列を使用して、Brush 型の属性値を設定できます。 たとえば、 などの<TextBlock Foreground="Cyan" />構文を使用して、Brush 型の値 TextBlock.Foreground を設定できます。 この構文では、その要素の TextBlock.ForegroundBrush 型の値を塗りつぶす Color 値がシアンと等しい新しい SolidColorBrush が暗黙的に作成されます。 XAML でブラシと色を使用する方法の詳細については、「 ブラシを使用する」を参照してください。

XAML で同じカラー ブラシを頻繁に使用する場合は、新しい値のインライン暗黙的な作成を使用するのではなく、 リソースとして SolidColorBrush を定義する必要があります。 詳細については、「 XAML マークアップの最適化 」または 「ResourceDictionary および XAML リソース参照」を参照してください。 また、システムが定義するテーマのマージイン リソースとしてアクセスできるシステム カラーを使用することもできます。 「XAML テーマ リソース」を参照してください。

直接 Color 値を受け取る XAML プロパティもあります。 これらは主に 、ブラシに存在する Color 値のアニメーション化をサポートします。 Windows ランタイムは補間ロジックをサポートしているため、From To/ アニメーションで 1 つの Color から別の色にアニメーションを適用でき、アニメーションの実行時にアニメーションに補間された Color 値が使用されます。 詳しくは、「ストーリーボードに設定されたアニメーション」をご覧ください。

XAML 構文に関する注意事項

"#" トークンを使用して色の値を 16 進形式で指定すると、元の 16 進文字列としてではなく、0 ~ 255 の値として 16 進値が構造体に格納されます。 "sc#" トークンを使用する場合、値は 0 から 1 の元の値ではなく、0 ~ 255 の値として格納されます。

名前付き色の文字列は、関連付けられた Colors 定数に基づいて解釈され、 ARGB の値は、その色を表す 0 ~ 255 の値として構造体に設定されます。

XAML オブジェクト要素の使用法 (初期化テキスト付き) は、XAML ResourceDictionary で Color をリソースとして宣言する場合に便利です。 詳しくは、「ResourceDictionary と XAML リソースの参照」をご覧ください。

次の表では、「XAML 構文」セクションに示されている色の値のプレースホルダーについて説明します。

メモ
predefinedColor Colors クラスによって定義済みの色の 1 つ。 リストについては、 の Colors メンバーを参照してください。 これらは静的プロパティです。 色の名前のみを指定します (例: Transparent)。 文字列に静的クラス修飾子を含めないでください。たとえば、"Colors.Transparent" は XAML で解析しません。
<Grid Background="Blue"/>, <Color>Blue</Color>
Rgb 3 文字の 16 進数の値。 最初の文字は色の R 値を指定し、2 番目の文字は G 値を指定し、3 番目の文字は B 値を指定します。 たとえば、00F です。
<Grid Background="#00F"/>, <Color>#00F</Color>
Argb 4 文字の 16 進数の値。 最初の文字は色の A 値を指定し、2 番目の文字は R 値を指定し、3 番目の文字は G 値を指定し、4 番目の文字はその B 値を指定します。 たとえば、F00F です。
<Grid Background="#F00F"/>, <Color>#F00F</Color>
rrggbb 6 文字の 16 進数の値。 最初の 2 文字は色の R 値を指定し、次の 2 文字は G 値を指定し、最後の 2 文字は B 値を指定します。 たとえば、0000FF です。
<Grid Background="#0000FF"/>, <Color>#0000FF</Color>
aarrggbb 8 文字の 16 進数の値。 最初の 2 文字は色の A 値を指定し、次の 2 文字は R 値を指定し、次の 2 文字は G 値を指定し、最後の 2 文字はその B 値を指定します。 たとえば、FF0000FF です。
<Grid Background="#FF0000FF"/>, <Color>#FF0000FF</Color>
Sca 色の ScA (アルファ) 値を 0 ~ 1 の値として指定します。
<Grid Background="sc#1,0,0,1"/>, <Color>sc#1,0,0,1</Color>
Scr 色の ScR (赤) の値を 0 ~ 1 の値として指定します。
Scg 色の ScG (緑) の値を 0 ~ 1 の値として指定します。
Scb 色の ScB (青) の値を 0 ~ 1 の値として指定します。

Color のプロジェクションとメンバー

Microsoft .NET 言語 (C# または Microsoft Visual Basic) を使用している場合、Color には、Color 値ジェネレーターとして機能する静的メソッド FromArgb があります。 また、Color のデータ メンバーは、読み取り/書き込みプロパティとして公開されます。

Visual C++ コンポーネント拡張機能 (C++/CX) または WRL を使用して C++ をプログラミングする場合、Color のメンバーとして存在するデータ メンバー フィールドのみが存在し、メンバー テーブルに一覧表示されているユーティリティ メソッドまたはプロパティを使用することはできません。 C++ コードでは、ColorHelper クラスと Platform::Object メソッドで同等の FromArgb メソッドを使用できます。

Color の ToString 動作

C# と Microsoft Visual Basic の場合、Color 構造体の言語サポートは、ARGB データ プロパティの値を 1 つの文字列にシリアル化する の動作ToStringを提供します。 Color 値の文字列表現は、マークアップで Color 値を指定するための XAML 属性文字列構文に似ています。 これは、デザイナー ツールで (名前のない) 色を指定するために最も一般的に使用される構文です。 文字列は の形式#AARRGGBBです。各文字ペアは、 と FFの間00の値としてカラー チャネルの 1 つを表します。 各文字ペアは、16 進値であるかのように解釈され、0 から 255 の値を表します。 文字列は常にハッシュ (#) で始まります。 たとえば、色の文字列形式は A=255, R=0, G=128, B=255 "#FF0080FF" です。 名前付き色の場合は、定数名ではなくシリアル化された文字列を取得します。たとえば、Colors.Blue で を呼び出すとToString、"#FF0000FF" が表示されます。

注意

Visual C++ コンポーネント拡張機能 (C++/CX) は Color の非data メンバーを使用せず、 から ToString()返されるこの形式の文字列を有効にしません。 ToString() Color の Visual C++ コンポーネント拡張機能 (C++/CX) から返される値は、変更されていない Platform::Object::ToString 動作です。これにより、型の表現 (IReference によってボックス化) が提供され、値は示されません。

フィールド

A

色の sRGB アルファ チャネル値を取得または設定します。

B

色の sRGB 青チャネル値を取得または設定します。

G

色の sRGB 緑チャネル値を取得または設定します。

R

色の sRGB 赤チャネル値を取得または設定します。

適用対象

こちらもご覧ください