Color Struct

Definizione

Descrive un colore in termini di canali alfa, rosso, verde e blu.

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"/>
Ereditarietà
Color
Attributi

Requisiti Windows

Famiglia di dispositivi
Windows 10 (è stato introdotto in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (è stato introdotto in v1.0)

Esempio

Ecco la sintassi per definire un valore Color come risorsa in un ResourceDictionary XAML. In genere è necessario solo se si definisce un colore che non è già uno dei 250+ colori forniti come valori nella classe Colors e si vuole usare il sistema di risorse XAML per applicare lo stesso colore in più aree dell'interfaccia utente dell'app. Prendere nota dell'attributo x:Key, obbligatorio quando definisci una risorsa XAML.

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

Questo codice mostra un convertitore bidirezionale per i valori SolidColorBrush e Color. Ciò può essere utile per gli scenari di associazione dati, perché implementa il modello IValueConverter che la proprietà Converter di un data binding può usare ed è quindi possibile associare un'origine SolidColorBrush a una destinazione Color e viceversa. Per visualizzare questo codice nel contesto, vedi l'origine per l'esempio 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;
    }
}

Commenti

Color è una struttura Windows Runtime che rappresenta un colore con quattro canali: A (alfa), R (rosso), G (verde), B (blu). Ognuno dei valori viene archiviato come tipo Byte con valore 0-255.

I valori di colore vengono usati in queste funzionalità e scenari:

  • Colori per le schermate iniziali e l'interfaccia utente generale (ad esempio SecondaryTile.BackgroundColor e UISettings.UIElementColor). Questi possono essere usati in JavaScript.
  • Valori di colore per il sistema input penna di Windows 8. In particolare , InkDrawingAttributes.Color. Può essere usato in JavaScript.
  • Valori di colore per l'interfaccia utente XAML e l'app UWP usando C++, C# o Visual Basic, in particolare per i pennelli. Queste API non possono essere usate in JavaScript.
  • Definizione dei valori di colore utilizzati per le interfacce che rappresentano il testo nello spazio dei nomi Windows.UI.Text . Queste API non possono essere usate in JavaScript.

Valori di colore e definizioni XAML

L'applicazione più frequente di Color consiste nel definire le proprietà correlate al colore in un elemento dell'interfaccia utente come parte di un'app UWP usando C++, C# o Visual Basic e la relativa definizione dell'interfaccia utente XAML.

Vari valori Color predefiniti sono disponibili come proprietà statiche nella classe Colors . Queste proprietà sono utili per impostare i valori color nel codice che corrispondono al formato stringa dell'attributo usato in XAML per impostare un colore denominato. Ad esempio, la proprietà Colors.AliceBlue restituisce un oggetto Color uguale a Color dall'utilizzo <SolidColorBrush Color="AliceBlue" />XAML. È anche possibile usare i valori Colori per i confronti di uguaglianza con un colore.

Nella maggior parte degli scenari dell'interfaccia utente XAML, un colore non viene usato direttamente come valore della proprietà di un OGGETTO UIElement. Viene invece usato un oggetto Color come valore componente di un oggetto Brush ( SolidColorBrush o LinearGradientBrush). Tuttavia, il tipo Brush abilita una abbreviata XAML che consente di impostare un valore di attributo di tipo Brush usando una stringa di colore denominata o una stringa di formato che può essere analizzata in un modulo ARGB . Ad esempio, è possibile impostare il valore di Brush-type TextBlock.Foreground usando una sintassi come <TextBlock Foreground="Cyan" />. Questa sintassi crea in modo implicito un nuovo Oggetto SolidColorBrush con un valore Color uguale a Cyan che riempie il valore brush di TextBlock.Foreground per tale elemento. Per altre info sull'uso di pennelli e colori in XAML, vedi Usare i pennelli.

Se usi spesso lo stesso pennello di colore nel codice XAML, devi definire un oggetto SolidColorBrush come risorsa anziché usare la creazione implicita inline di nuovi valori, perché è più efficiente. Per altre info, vedi Ottimizzare il markup XAML o ResourceDictionary e i riferimenti alle risorse XAML. È anche possibile usare i colori di sistema, a cui è possibile accedere come risorse unite per i temi definiti dal sistema. Vedi Risorse del tema XAML.

Esistono anche alcune proprietà XAML che accettano un valore Color diretto. Questi supportano principalmente l'animazione di un valore Color esistente in un oggetto Brush. Il Windows Runtime supporta una logica di interpolazione in modo che sia possibile animare da un colore a un altro in un'animazione From/To e l'animazione userà i valori color interpolati durante l'esecuzione dell'animazione. Per altre info, vedi Animazioni con storyboard.

Note sulla sintassi XAML

Se si usa il token "#" per specificare i valori di colore in formato esadecimale, i valori esadecimali vengono archiviati nella struttura come valori compresi tra 0 e 255, non come le stringhe esadecimali originali. Se si usa il token "sc#", i valori vengono archiviati anche come valori compresi tra 0 e 255, non il valore originale compreso tra 0 e 1.

Le stringhe per i colori denominati vengono interpretate in base alle costanti Colors associate e i valori per A, R, G e B vengono impostati nella struttura come valori compresi tra 0 e 255 rappresentativi di tale colore.

L'utilizzo dell'elemento oggetto XAML (con testo di inizializzazione) è utile per dichiarare Un colore come risorsa in un oggetto ResourceDictionary XAML. Per altre info, vedi Riferimenti alle risorse ResourceDictionary e XAML.

Questa tabella illustra i segnaposto dei valori di colore mostrati nella sezione Sintassi XAML.

Valore Note
predefinedColor Uno dei colori predefiniti dalla classe Colors . Vedere i membri di Colors per un elenco. Si tratta di proprietà statiche. Specificare solo il nome del colore, ad esempio Transparent. Non includere il qualificatore di classe statico nella stringa: ad esempio, "Colors.Transparent" non analizza in XAML.
<Grid Background="Blue"/>, <Color>Blue</Color>
Rgb Valore esadecimale a tre caratteri. Il primo carattere specifica il valore R del colore, il secondo carattere specifica il valore G e il terzo carattere specifica il valore B. Ad esempio, 00F.
<Grid Background="#00F"/>, <Color>#00F</Color>
Argb Valore esadecimale a quattro caratteri. Il primo carattere specifica il valore A del colore, il secondo carattere specifica il valore R, il terzo carattere specifica il valore G e il quarto carattere specifica il valore B. Ad esempio, F00F.
<Grid Background="#F00F"/>, <Color>#F00F</Color>
rrggbb Valore esadecimale di sei caratteri. I primi due caratteri specificano il valore R del colore, i due successivi specificano il relativo valore G e i due finali specificano il relativo valore B. Ad esempio, 0000FF.
<Grid Background="#0000FF"/>, <Color>#0000FF</Color>
aarrggbb Valore esadecimale di otto caratteri. I primi due caratteri specificano il valore A del colore, i due successivi specificano il valore R, i due successivi specificano il relativo valore G e i due finali specificano il relativo valore B. Ad esempio, FF0000FF.
<Grid Background="#FF0000FF"/>, <Color>#FF0000FF</Color>
Sca Valore ScA (alfa) del colore come valore compreso tra 0 e 1.
<Grid Background="sc#1,0,0,1"/>, <Color>sc#1,0,0,1</Color>
Scr Valore ScR (rosso) del colore come valore compreso tra 0 e 1.
Scg Valore scG (verde) del colore come valore compreso tra 0 e 1.
Scb Valore scB (blu) del colore come valore compreso tra 0 e 1.

Proiezione e membri di Color

Se si usa un linguaggio Microsoft .NET (C# o Microsoft Visual Basic), Color ha un metodo statico FromArgb che funge da generatore di valori color. Inoltre, i membri dati di Color vengono esposti come proprietà di lettura/scrittura.

Se si esegue la programmazione con C++, le estensioni del componente Visual C++ (C++/CX) o WRL, esistono solo i campi membro dati come membri di Color e non è possibile usare i metodi di utilità o le proprietà elencate nella tabella membri. Il codice C++ può usare un metodo FromArgb equivalente nella classe ColorHelper e nei metodi Platform::Object .

Comportamento di ToString per Color

Per C# e Microsoft Visual Basic, il supporto del linguaggio per la struttura Color fornisce un comportamento per ToString serializzare i valori delle proprietà dei dati ARGB in una singola stringa. Le rappresentazioni di stringa dei valori Color sono simili alla sintassi della stringa di attributi XAML per specificare i valori Color nel markup. Si tratta della sintassi usata più comunemente dagli strumenti di progettazione per specificare un colore (non denominato). La stringa è nel formato #AARRGGBB, dove ogni coppia di lettere rappresenta uno dei canali di colore come valore tra 00 e FF. Ogni coppia di lettere viene interpretata come se fosse un valore esadecimale e rappresenta quindi un valore compreso tra 0 e 255. La stringa inizia sempre con un hash (#). Ad esempio, il formato stringa del colore in cui A=255, R=0, G=128, B=255 è "#FF0080FF". Per i colori denominati si ottiene la stringa serializzata e non il nome della costante; Ad esempio, la chiamata ToString a Colors.Blue restituisce "#FF0000FF".

Nota

Le estensioni del componente Visual C++ (C++/CX) non usano membri non dati di Color e non abilitano questa forma di stringa restituita da ToString(). Il ToString() valore restituito dalle estensioni dei componenti di Visual C++ (C++/CX) per un colore è il comportamento platform non modificato ::Object::ToString , che fornisce una rappresentazione del tipo (boxed by IReference) e non indica il valore.

Campi

A

Ottiene o imposta il valore del canale alfa sRGB del colore.

B

Ottiene o imposta il valore del canale blu sRGB del colore.

G

Ottiene o imposta il valore del canale verde sRGB del colore.

R

Ottiene o imposta il valore del canale rosso sRGB del colore.

Si applica a

Vedi anche