다음을 통해 공유


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개 이상의 색 중 하나가 아닌 색을 정의하고 앱 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;
    }
}

설명

색은 4개의 채널(A(알파), R(빨강), G(녹색), B(파란색)의 색을 나타내는 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에서 명명된 Color를 설정하는 데 사용되는 특성 문자열 양식과 일치하는 코드에서 Color 값을 설정하는 데 유용합니다. 예를 들어 Colors.AliceBlue 속성은 XAML 사용 <SolidColorBrush Color="AliceBlue" />에서 Color와 동일한 Color를 반환합니다. 색에 대한 같음 비교에 값을 사용할 수도 있습니다.

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

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

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

XAML 구문에 대한 참고 사항

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

명명된 색에 대한 문자열은 연결된 상수를 기반으로 해석되며 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++ 코드는 ColorHelper 클래스에 해당하는 FromArgb 메서드와 Platform::Object 메서드를 사용할 수 있습니다.

색에 대한 ToString 동작

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

참고

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

필드

A

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

B

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

G

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

R

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

적용 대상

추가 정보