Compartilhar via


Color Estrutura

Definição

Descreve uma cor em termos de canais alfa, vermelho, verde e azul.

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"/>
Herança
Color
Atributos

Requisitos do Windows

Família de dispositivos
Windows 10 (introduzida na 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (introduzida na v1.0)

Exemplos

Esta é a sintaxe para definir um valor color como um recurso em um ResourceDictionary XAML. Normalmente, você só precisaria disso se estivesse definindo uma cor que ainda não é uma das mais de 250 cores fornecidas como os valores na classe Colors e deseja usar o sistema de recursos XAML como imposição de que você está usando a mesma cor em várias áreas da interface do usuário do aplicativo. Observe o atributo x:Key, necessário quando você define um recurso 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"/>

Esse código mostra um conversor bidirecional para valores SolidColorBrush e Color. Isso pode ser útil para cenários de vinculação de dados, pois implementa o padrão IValueConverter que a propriedade Converter de uma associação de dados pode usar e, em seguida, você pode associar uma fonte SolidColorBrush a um destino Color e vice-versa. Para ver esse código no contexto, consulte a origem do exemplo 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;
    }
}

Comentários

Cor é uma estrutura Windows Runtime que representa uma cor que tem quatro canais: A (alfa), R (vermelho), G (verde), B (azul). Cada um dos valores é armazenado como um tipo de Byte com o valor 0-255.

Os valores de cor são usados nesses recursos e cenários:

  • Cores para telas iniciais e interface do usuário geral (por exemplo , SecondaryTile.BackgroundColor e UISettings.UIElementColor). Eles podem ser usados em JavaScript.
  • Valores de cores para o sistema de tinta do Windows 8. Especificamente, InkDrawingAttributes.Color. Isso pode ser usado em JavaScript.
  • Valores de cores para interface do usuário XAML e aplicativo UWP usando C++, C#ou Visual Basic, especialmente para pincéis. Essas API não podem ser usadas no JavaScript.
  • Definindo valores de cor que são usados para interfaces que representam o texto, no namespace Windows.UI.Text . Essas API não podem ser usadas no JavaScript.

Valores de cor e definições XAML

O aplicativo mais frequente de Color é definir propriedades relacionadas à cor em um elemento de interface do usuário como parte de um aplicativo UWP usando C++, C#ou Visual Basic e sua definição de interface do usuário XAML.

Vários valores de Cor predefinidos estão disponíveis como propriedades estáticas na classe Colors . Essas propriedades são úteis para definir valores de cor no código que correspondem ao formulário de cadeia de caracteres de atributo usado em XAML para definir uma Cor nomeada. Por exemplo, a propriedade Colors.AliceBlue retorna uma Cor igual à Cor do uso <SolidColorBrush Color="AliceBlue" />XAML. Você também pode usar os valores cores para comparações de igualdade em relação a uma Cor.

Na maioria dos cenários de interface do usuário XAML, uma Cor não é usada diretamente como um valor de propriedade de um UIElement. Em vez disso, uma Cor é usada como um valor de componente de um Pincel ( SolidColorBrush ou LinearGradientBrush). No entanto, o tipo Brush habilita uma abreviação XAML que permite definir um valor de atributo do tipo Brush usando uma cadeia de caracteres de cor nomeada ou uma cadeia de caracteres de formato que pode ser analisada em um formulário ARGB . Por exemplo, você pode definir o valor de tipo brushTextBlock.Foreground usando uma sintaxe como <TextBlock Foreground="Cyan" />. Essa sintaxe cria implicitamente um novo SolidColorBrush com um valor Color igual a Cyan que preenche o valor do tipo Brush de TextBlock.Foreground para esse elemento. Para obter mais informações sobre como usar pincéis e cores em XAML, consulte Usar pincéis.

Se você usar o mesmo pincel de cor com frequência em seu XAML, deverá definir um SolidColorBrush como um recurso em vez de usar a criação implícita embutida de novos valores, pois isso é mais eficiente. Para obter mais informações, consulte Otimizar sua marcação XAML ou Referências de recursos ResourceDictionary e XAML. Talvez você também queira usar cores do sistema, que podem ser acessadas como recursos mesclados para temas definidos pelo sistema. Consulte Recursos de tema XAML.

Também há algumas propriedades XAML que levam um valor de Cor direto. Eles dão suporte principalmente à animação de um valor Color que existe em um Brush. O Windows Runtime dá suporte a uma lógica de interpolação para que você possa animar de uma Cor para outra em uma animação De/Para e a animação usará valores de Cor interpolados à medida que a animação for executada. Para saber mais, consulte Animações com storyboard.

Anotações sobre a sintaxe XAML

Se você usar o token "#" para especificar valores de cor no formato hex, os valores hex são armazenados na estrutura como valores entre 0 e 255, não como as cadeias de caracteres hexadecimais originais. Se você usar o token "sc#", os valores também serão armazenados como valores entre 0 e 255, não o valor original de 0 a 1.

As cadeias de caracteres para cores nomeadas são interpretadas com base nas constantes Colors associadas e os valores de A, R, G e B são definidos na estrutura como valores entre 0 e 255 que representam essa cor.

O uso do elemento de objeto XAML (com texto de inicialização) é útil para declarar uma Cor como um recurso em um ResourceDictionary XAML. Para obter mais informações, consulte Referências de recursos de ResourceDictionary e XAML.

Esta tabela explica os espaços reservados de valor de cor mostrados na seção Sintaxe XAML.

Valor Observações
predefinedColor Uma das cores predefinidas pela classe Colors . Consulte membros de Colors para obter uma lista. São propriedades estáticas. Especifique apenas o nome da cor, por exemplo Transparent. Não inclua o qualificador de classe estática na cadeia de caracteres: por exemplo, "Colors.Transparent" não analisa em XAML.
<Grid Background="Blue"/>, <Color>Blue</Color>
rgb Um valor hexadecimal de três caracteres. O primeiro caractere especifica o valor R da cor, o segundo caractere especifica o valor G e o terceiro caractere especifica o valor B. Por exemplo, 00F.
<Grid Background="#00F"/>, <Color>#00F</Color>
Argb Um valor hexadecimal de quatro caracteres. O primeiro caractere especifica o valor A da cor, o segundo caractere especifica seu valor R, o terceiro caractere especifica o valor G e o quarto caractere especifica seu valor B. Por exemplo, F00F.
<Grid Background="#F00F"/>, <Color>#F00F</Color>
Rrggbb Um valor hexadecimal de seis caracteres. Os dois primeiros caracteres especificam o valor R da cor, os dois seguintes especificam seu valor G e os dois finais especificam seu valor B. Por exemplo, 0000FF.
<Grid Background="#0000FF"/>, <Color>#0000FF</Color>
Aarrggbb Um valor hexadecimal de oito caracteres. Os dois primeiros caracteres especificam o valor A da cor, os dois seguintes especificam seu valor R, os dois seguintes especificam seu valor G e os dois finais especificam seu valor B. Por exemplo, FF0000FF.
<Grid Background="#FF0000FF"/>, <Color>#FF0000FF</Color>
Sca O valor sca (alfa) da cor como um valor entre 0 e 1.
<Grid Background="sc#1,0,0,1"/>, <Color>sc#1,0,0,1</Color>
Scr O valor scr (vermelho) da cor como um valor entre 0 e 1.
Scg O valor scg (verde) da cor como um valor entre 0 e 1.
Scb O valor scb (azul) da cor como um valor entre 0 e 1.

Projeção e membros da Cor

Se você estiver usando uma linguagem Microsoft .NET (C# ou Microsoft Visual Basic), Color terá um método estático FromArgb que atua como um gerador de valor color. Além disso, os membros de dados de Cor são expostos como propriedades de leitura/gravação.

Se você estiver programando com C++, as extensões de componente do Visual C++ (C++/CX) ou WRL, somente os campos de membro de dados existirão como membros da Cor e você não poderá usar os métodos de utilitário ou as propriedades listadas na tabela de membros. O código C++ pode usar um método FromArgb equivalente na classe ColorHelper e os métodos Platform::Object .

Comportamento de ToString para Cor

Para C# e Microsoft Visual Basic, o suporte de linguagem para a estrutura Color fornece um comportamento para ToString que serializa os valores das propriedades de dados ARGB em uma única cadeia de caracteres. As representações de cadeia de caracteres de Valores de cor são semelhantes à sintaxe da cadeia de caracteres do atributo XAML para especificar valores de cor na marcação. É a sintaxe que é mais comumente usada pelas ferramentas de designer para especificar uma Cor (não nomeada). A cadeia de caracteres está no formato #AARRGGBB, em que cada par de letras representa um dos canais de cor como um valor entre 00 e FF. Cada par de letras é interpretado como se fosse um valor hex e, portanto, representa um valor entre 0 e 255. A cadeia de caracteres sempre começa com um hash (#). Por exemplo, a forma de cadeia de caracteres da cor em que A=255, R=0, G=128, B=255 é "#FF0080FF". Para cores nomeadas, você obtém a cadeia de caracteres serializada e não o nome da constante; por exemplo, chamar ToString em Colors.Blue dá "#FF0000FF".

Observação

As extensões de componente do Visual C++ (C++/CX) não usam membros nondata de Color e não habilitam essa forma de cadeia de caracteres retornada de ToString(). O ToString() valor retornado das extensões de componente do Visual C++ (C++/CX) para uma Cor é o comportamento platform::Object::ToString não modificado, que fornece uma representação do tipo (em caixa por IReference) e não indica o valor.

Campos

A

Obtém ou define o valor do canal alfa sRGB da cor.

B

Obtém ou define o valor do canal azul sRGB da cor.

G

Obtém ou define o valor do canal verde sRGB da cor.

R

Obtém ou define o valor do canal vermelho sRGB da cor.

Aplica-se a

Confira também