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에서 리소스로 정의하는 구문은 다음과 같습니다. 일반적으로 클래스의 값 Colors 으로 제공되는 250개 이상의 색 중 하나가 아닌 색을 정의하고 앱 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 양방향 변환기를 보여줍니다. 데이터 바인딩의 속성이 사용할 수 있는 패턴을 Converter 구현 IValueConverter 하고 원본을 색 대상에 바인딩 SolidColorBrush 할 수 있고 그 반대의 경우도 마찬가지이므로 데이터 바인딩 시나리오에 유용할 수 있습니다. 컨텍스트에서 이 코드를 보려면 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;
    }
}

설명

색은 A(알파), R(빨강), G(녹색), B(파랑) 등 4개의 채널이 있는 색을 나타내는 Windows 런타임 구조체입니다. 각 값은 값이 0-255인 바이트 형식으로 저장됩니다.

색 값은 다음 기능 및 시나리오에서 사용됩니다.

  • 시작 화면 및 일반 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 정적 속성으로 사용할 수 있습니다. 이러한 속성은 XAML에서 명명된 색을 설정하는 데 사용되는 특성 문자열 양식과 일치하는 코드에서 색 값을 설정하는 데 유용합니다. 예를 들어 이 속성은 Colors.AliceBlue XAML 사용 <SolidColorBrush Color="AliceBlue" />량에서 Color와 같은 색을 반환합니다. 색에 Colors 대한 같음 비교에 값을 사용할 수도 있습니다.

대부분의 XAML UI 시나리오에서는 Color가 속성 값 UIElement으로 직접 사용되지 않습니다. 대신 색은 (또는 SolidColorBrush LinearGradientBrush) 구성 요소 값 Brush 으로 사용됩니다. 그러나 이 형식을 Brush 사용하면 명명된 색 문자열 또는 ARGB 형식으로 구문 분석할 수 있는 형식 문자열을 사용하여 형식 Brush 의 특성 값을 설정할 수 있는 XAML 약식이 가능합니다. 예를 들어 .와 같은 <TextBlock Foreground="Cyan" />구문을 사용하여 -type 값을 TextBlock.Foreground 설정할 Brush수 있습니다. 이 구문은 해당 요소의 -type 값을 TextBlock.Foreground 채우는 Brush색 값이 같은 CyanSolidColorBrush 구문을 암시적으로 만듭니다. XAML에서 브러시 및 색을 사용하는 방법에 대한 자세한 내용은 브러시 사용을 참조하세요.

XAML에서 동일한 색 브러시를 자주 사용하는 경우 새 값의 인라인 암시적 생성을 사용하는 대신 리소스로 정의 SolidColorBrush 해야 합니다. 이는 더 효율적이기 때문입니다. 자세한 내용은 XAML 태그 또는 ResourceDictionary 및 XAML 리소스 참조 최적화를 참조하세요. 시스템에서 정의하는 테마에 대한 병합된 리소스로 액세스할 수 있는 시스템 색을 사용할 수도 있습니다. XAML 테마 리소스를 참조하세요.

직접 색 값을 사용하는 일부 XAML 속성도 있습니다. 이러한 항목은 주로 에 있는 색 값에 Brush애니메이션 효과를 주는 것을 지원합니다. 이 Windows 런타임 보간 논리를 지원하므로 시작/애니메이션에서 한 색에서 다른 색으로 애니메이션 효과를 줄 수 있으며 애니메이션이 애니메이션이 실행될 때 보간된 색 값을 사용합니다. 자세한 내용은 스토리보드 애니메이션을 참조하세요.

XAML 구문에 대한 참고 사항

"#" 토큰을 사용하여 색 값을 16진수 형식으로 지정하는 경우 16진수 값은 원래 16진수 문자열이 아니라 0에서 255 사이의 값으로 구조에 저장됩니다. "sc#" 토큰을 사용하는 경우 값은 원래 값이 0에서 1이 아닌 0에서 255 사이의 값으로 저장됩니다.

명명된 Colors 색에 대한 문자열은 연결된 상수에 따라 해석 되며 A, R, GB 의 값은 구조에서 해당 색을 나타내는 0에서 255 사이의 값으로 설정됩니다.

XAML 개체 요소 사용(초기화 텍스트 포함)은 XAML ResourceDictionary에서 Color를 리소스로 선언하는 데 유용합니다. 자세한 내용은 ResourceDictionary 및 XAML 리소스 참조를 확인하세요.

이 표에서는 XAML 구문 섹션에 표시된 색 값 자리 표시자에 대해 설명합니다.

참고
predefinedColor 에 의해 미리 정의 된 색 중 하나는 Colors 클래스입니다. 목록의 Colors 멤버를 참조하세요. 정적 속성입니다. 색 이름만 지정합니다(예: Transparent). 문자열에 정적 클래스 한정자를 포함하지 마세요. 예를 들어 "Colors.Transparent"는 XAML에서 구문 분석되지 않습니다.
<Grid Background="Blue"/>, <Color>Blue</Color>
Rgb 3자 16진수 값입니다. 첫 번째 문자는 색의 R 값을 지정하고, 두 번째 문자는 G 값을 지정하고, 세 번째 문자는 B 값을 지정합니다. 예를 들어 00F입니다.
<Grid Background="#00F"/>, <Color>#00F</Color>
Argb 4자 16진수 값입니다. 첫 번째 문자는 색의 A 값을 지정하고, 두 번째 문자는 R 값을 지정하고, 세 번째 문자는 G 값을 지정하고, 네 번째 문자는 해당 B 값을 지정합니다. 예를 들어 F00F입니다.
<Grid Background="#F00F"/>, <Color>#F00F</Color>
rrggbb 6자 16진수 값입니다. 처음 두 문자는 색의 R 값을 지정하고, 다음 두 문자는 해당 G 값을 지정하고, 마지막 두 문자는 해당 B 값을 지정합니다. 예를 들어 0000FF입니다.
<Grid Background="#0000FF"/>, <Color>#0000FF</Color>
aarrggbb 8자 16진수 값입니다. 처음 두 문자는 색의 A 값을 지정하고, 다음 두 문자는 R 값을 지정하고, 다음 두 문자는 G 값을 지정하고, 마지막 두 문자는 해당 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 사이의 값입니다.

색의 프로젝션 및 멤버

Microsoft .NET 언어(C# 또는 Microsoft Visual Basic)를 사용하는 경우 Color에는 Color 값 생성기 역할을 하는 정적 FromArgb 메서드가 있습니다. 또한 Color의 데이터 멤버는 읽기/쓰기 속성으로 노출됩니다.

C++, Visual C++ 구성 요소 확장(C++/CX) 또는 WRL로 프로그래밍하는 경우 데이터 멤버 필드만 Color의 멤버로 존재하며 멤버 테이블에 나열된 유틸리티 메서드 또는 속성을 사용할 수 없습니다. C++ 코드는 클래스 및 Platform::Object 메서드에 ColorHelper 해당하는 FromArgb 메서드를 사용할 수 있습니다.

색에 대한 ToString 동작

C# 및 Microsoft Visual Basic 색 구조에 대한 언어 지원은 ARGB 데이터 속성의 값을 단일 문자열로 직렬화하는 동작 ToString 을 제공합니다. Color 값의 문자열 표현은 태그에서 색 값을 지정하기 위한 XAML 특성 문자열 구문과 유사합니다. 디자이너 도구에서 이름이 지정되지 않은 색을 지정하는 데 가장 일반적으로 사용되는 구문입니다. 문자열은 형식 #AARRGGBB입니다. 여기서 각 문자 쌍은 색 채널 중 하나를 사이의 00 FF값으로 나타냅니다. 각 문자 쌍은 16진수 값인 것처럼 해석되므로 0에서 255 사이의 값을 나타냅니다. 문자열은 항상 해시(#)로 시작합니다. 예를 들어 "#FF0080FF"인 색 A=255, R=0, G=128, B=255 의 문자열 형식입니다. 명명된 색의 경우 상수 이름이 아닌 serialize된 문자열을 가져옵니다. 예를 들어 호출 ToStringColors.Blue "#FF0000FF"를 제공합니다.

참고

Visual C++ 구성 요소 확장(C++/CX)은 Color의 비데이타 멤버를 사용하지 않으며 반환된 이 형식의 문자열 ToString()을 사용하도록 설정하지 않습니다. 색에 대한 Visual C++ 구성 요소 확장(C++/CX)에서 반환되는 값은 ToString() 수정되지 않은 Platform::Object::ToString 동작입니다. 이 동작은 형식의 표현(boxed by IReference)을 제공하고 값을 나타내지 않습니다.

필드

A

색의 sRGB 알파 채널 값을 가져오거나 설정합니다.

B

색의 sRGB 파란색 채널 값을 가져오거나 설정합니다.

G

색의 sRGB 녹색 채널 값을 가져오거나 설정합니다.

R

색의 sRGB 빨간색 채널 값을 가져오거나 설정합니다.

적용 대상

추가 정보