Color Struktur

Definition

Beschreibt eine Farbe anhand von Alpha-, Rot-, Grün- und Blau-Kanälen.

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"/>
Vererbung
Color
Attribute

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)

Beispiele

Hier sehen Sie die Syntax zum Definieren eines Color-Werts als Ressource in einem XAML ResourceDictionary. In der Regel benötigen Sie dies nur, wenn Sie eine Farbe definieren, die nicht bereits eine der über 250 Farben ist, die als Werte in der Colors-Klasse bereitgestellt werden, und Sie das XAML-Ressourcensystem als Erzwingung verwenden möchten, dass Sie dieselbe Farbe in mehreren Bereichen ihrer App-Benutzeroberfläche verwenden. Beachten Sie das x:Key-Attribut, das erforderlich ist, wenn Sie eine XAML-Ressource definieren.

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

Dieser Code zeigt einen bidirektionalen Konverter für SolidColorBrush - und Color-Werte. Dies kann für Datenbindungsszenarien nützlich sein, da das IValueConverter-Muster implementiert wird, das von der Converter-Eigenschaft einer Datenbindung verwendet werden kann, und Sie dann eine SolidColorBrush-Quelle an ein Color-Ziel binden können und umgekehrt. Um diesen Code im Kontext anzuzeigen, lesen Sie die Quelle für das SwapChainPanel-Beispiel.

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;
    }
}

Hinweise

Farbe ist eine Windows-Runtime Struktur, die eine Farbe mit vier Kanälen darstellt: A (Alpha), R (rot), G (grün), B (blau). Jeder der Werte wird als Bytetyp mit dem Wert 0-255 gespeichert.

Farbwerte werden in diesen Features und Szenarien verwendet:

  • Farben für Startbildschirme und allgemeine Benutzeroberfläche (z . B. SecondaryTile.BackgroundColor und UISettings.UIElementColor). Diese können in JavaScript verwendet werden.
  • Farbwerte für das Windows 8-Freihandsystem. Insbesondere InkDrawingAttributes.Color. Dies kann in JavaScript verwendet werden.
  • Farbwerte für XAML-Benutzeroberfläche und UWP-App mit C++, C# oder Visual Basic, insbesondere für Pinsel. Diese API kann nicht in JavaScript verwendet werden.
  • Definieren von Farbwerten, die für Schnittstellen verwendet werden, die Text darstellen, im Windows.UI.Text-Namespace . Diese API kann nicht in JavaScript verwendet werden.

Farbwerte und XAML-Definitionen

Die häufigste Anwendung von Color besteht darin, farbbezogene Eigenschaften in einem UI-Element als Teil einer UWP-App mit C++, C# oder Visual Basic und der zugehörigen XAML-UI-Definition zu definieren.

Verschiedene vordefinierte Color-Werte sind als statische Eigenschaften für die Colors-Klasse verfügbar. Diese Eigenschaften sind nützlich, um Farbwerte im Code festzulegen, die mit dem Attributzeichenfolgenformular übereinstimmen, das in XAML zum Festlegen einer benannten Farbe verwendet wird. Beispielsweise gibt die Colors.AliceBlue-Eigenschaft eine Farbe zurück, die gleich Color aus der XAML-Verwendung <SolidColorBrush Color="AliceBlue" />ist. Sie können auch die Farbwerte für Gleichheitsvergleiche mit einer Farbe verwenden.

In den meisten XAML-Ui-Szenarien wird color nicht direkt als Eigenschaftswert eines UIElement verwendet. Stattdessen wird eine Farbe als Komponentenwert eines Pinsels ( entweder SolidColorBrush oder LinearGradientBrush) verwendet. Der Pinseltyp ermöglicht jedoch eine XAML-Kurzform, mit der Sie einen Attributwert vom Typ Brush mithilfe einer benannten Farbzeichenfolge oder einer Formatzeichenfolge festlegen können, die in ein ARGB-Formular analysiert werden kann. Beispielsweise können Sie den PinseltypwertTextBlock.Foreground mithilfe einer Syntax wie <TextBlock Foreground="Cyan" />festlegen. Diese Syntax erstellt implizit einen neuen SolidColorBrush mit einem Color-Wert gleich Cyan , der den PinseltypwertTextBlock.Foreground für dieses Element auffüllt. Weitere Informationen zur Verwendung von Pinsel und Farben in XAML finden Sie unter Verwenden von Pinsel.

Wenn Sie denselben Farbpinsel häufig in Ihrem XAML-Code verwenden, sollten Sie einen SolidColorBrush als Ressource definieren, anstatt die implizite Inlineerstellung neuer Werte zu verwenden, da dies effizienter ist. Weitere Informationen finden Sie unter Optimieren ihres XAML-Markups oder ResourceDictionary- und XAML-Ressourcenverweise. Möglicherweise möchten Sie auch Systemfarben verwenden, auf die als zusammengeführte Ressourcen für Designs zugegriffen werden kann, die vom System definiert werden. Weitere Informationen finden Sie unter XAML-Designressourcen.

Es gibt auch einige XAML-Eigenschaften, die einen direkten Color-Wert annehmen. Diese unterstützen meist das Animieren eines Color-Werts, der auf einem Pinsel vorhanden ist. Die Windows-Runtime unterstützt eine Interpolationslogik, sodass Sie in einer Von/bis-Animation von einer Farbe zu einer anderen animieren können, und die Animation verwendet interpolierte Farbwerte, während die Animation ausgeführt wird. Weitere Informationen finden Sie unter Storyboardanimationen.

Hinweise zur XAML-Syntax

Wenn Sie das Token "#" verwenden, um Farbwerte in hexadezimaler Form anzugeben, werden die Hexadezimalwerte in der Struktur als Werte zwischen 0 und 255 gespeichert, nicht als die ursprünglichen hexadezimalen Zeichenfolgen. Wenn Sie das Token "sc#" verwenden, werden die Werte auch als Werte zwischen 0 und 255 gespeichert, nicht als ursprünglicher Wert von 0 bis 1.

Zeichenfolgen für benannte Farben werden basierend auf den zugeordneten Farben-Konstanten interpretiert, und die Werte für A, R, G und B werden in der Struktur als Werte zwischen 0 und 255 festgelegt, die für diese Farbe repräsentativ sind.

Die Verwendung von XAML-Objektelements (mit Initialisierungstext) ist nützlich, um eine Farbe als Ressource in einem XAML ResourceDictionary zu deklarieren. Weitere Informationen finden Sie unter ResourceDictionary- und XAML-Ressourcenverweise.

In dieser Tabelle werden die Farbwertplatzhalter im Abschnitt XAML-Syntax erläutert.

Wert Notizen
predefinedColor Eine der Farben, die von der Colors-Klasse vordefiniert sind. Eine Liste finden Sie unter Member von Colors . Dies sind statische Eigenschaften. Geben Sie nur den Farbnamen an, z. B Transparent. . Schließen Sie den Qualifizierer der statischen Klasse nicht in die Zeichenfolge ein: Beispielsweise analysiert "Colors.Transparent" nicht in XAML.
<Grid Background="Blue"/>, <Color>Blue</Color>
Rgb Ein dreistellige Hexadezimalwert. Das erste Zeichen gibt den R-Wert der Farbe an, das zweite Zeichen den G-Wert, und das dritte Zeichen gibt den B-Wert an. Beispiel: 00F.
<Grid Background="#00F"/>, <Color>#00F</Color>
Argb Ein vierstellige Hexadezimalwert. Das erste Zeichen gibt den A-Wert der Farbe an, das zweite Zeichen den R-Wert, das dritte Zeichen den G-Wert und das vierte Zeichen den B-Wert. Beispiel: F00F.
<Grid Background="#F00F"/>, <Color>#F00F</Color>
rrggbb Ein sechsstellige Hexadezimalwert. Die ersten beiden Zeichen geben den R-Wert der Farbe an, die nächsten beiden geben den G-Wert an, und die letzten beiden geben den B-Wert an. Beispiel: 0000FF.
<Grid Background="#0000FF"/>, <Color>#0000FF</Color>
aarrggbb Ein hexadezimaler Wert aus acht Zeichen. Die ersten beiden Zeichen geben den A-Wert der Farbe an, die nächsten beiden geben den R-Wert an, die nächsten beiden geben den G-Wert an, und die letzten beiden geben den B-Wert an. Beispiel: FF0000FF.
<Grid Background="#FF0000FF"/>, <Color>#FF0000FF</Color>
Sca Der ScA-Wert (Alpha) der Farbe als Wert zwischen 0 und 1.
<Grid Background="sc#1,0,0,1"/>, <Color>sc#1,0,0,1</Color>
Scr Der ScR-Wert (rot) der Farbe als Wert zwischen 0 und 1.
Scg Der ScG-Wert (grün) der Farbe als Wert zwischen 0 und 1.
Scb Der ScB-Wert (blau) der Farbe als Wert zwischen 0 und 1.

Projektion und Elemente der Farbe

Wenn Sie eine Microsoft .NET-Sprache (C# oder Microsoft Visual Basic) verwenden, verfügt Color über eine statische FromArgb-Methode , die als Farbwertgenerator fungiert. Außerdem werden die Datenmember von Color als Eigenschaften mit Lese-/Schreibzugriff verfügbar gemacht.

Wenn Sie mit C++ programmieren, entweder mit Visual C++-Komponentenerweiterungen (C++/CX) oder WRL, sind nur die Datenmemberfelder als Member von Color vorhanden, und Sie können die in der Membertabelle aufgeführten Hilfsprogrammmethoden oder -eigenschaften nicht verwenden. C++-Code kann eine entsprechende FromArgb-Methode für die ColorHelper-Klasse und die Platform::Object-Methoden verwenden.

ToString-Verhalten für Color

Für C# und Microsoft Visual Basic stellt die Sprachunterstützung für die Color-Struktur ein Verhalten bereit ToString , das die Werte der ARGB-Dateneigenschaften in eine einzelne Zeichenfolge serialisiert. Die Zeichenfolgendarstellungen von Color-Werten ähneln der XAML-Attributzeichenfolgensyntax zum Angeben von Color-Werten im Markup. Es ist die Syntax, die am häufigsten von Designertools verwendet wird, um eine (nicht benannte) Farbe anzugeben. Die Zeichenfolge hat das Format #AARRGGBB, wobei jedes Buchstabenpaar einen der Farbkanäle als Wert zwischen 00 und FFdarstellt. Jedes Buchstabenpaar wird so interpretiert, als wäre es ein Hexadezimwert und stellt somit einen Wert zwischen 0 und 255 dar. Die Zeichenfolge beginnt immer mit einem Hash (#). Beispielsweise die Zeichenfolgenform der Farbe, bei der A=255, R=0, G=128, B=255 "#FF0080FF" ist. Für benannte Farben erhalten Sie die serialisierte Zeichenfolge und nicht den Konstantennamen. wenn Sie beispielsweise auf Colors.Blue aufrufenToString, wird "#FF0000FF".

Hinweis

Visual C++-Komponentenerweiterungen (C++/CX) verwendet keine Nichtdatenmember von Color und aktiviert diese Form der von ToString()zurückgegebenen Zeichenfolge nicht. Der ToString() wert, der von Visual C++-Komponentenerweiterungen (C++/CX) für eine Farbe zurückgegeben wird, ist das nicht modifizierte Platform::Object::ToString-Verhalten , das eine Darstellung des Typs (boxed by IReference) angibt und den Wert nicht angibt.

Felder

A

Ruft den sRGB-Alphakanalwert der Farbe ab oder legt diese fest.

B

Ruft den blauen sRGB-Kanalwert der Farbe ab oder legt diese fest.

G

Ruft den Wert des grünen sRGB-Kanals der Farbe ab oder legt diese fest.

R

Ruft den wert des roten sRGB-Kanals der Farbe ab oder legt diese fest.

Gilt für:

Weitere Informationen