Color 구조체
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
알파, 빨간색, 녹색 및 파란색 채널로 색을 설명합니다.
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.BackgroundColor 및 UISettings.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.Foreground의 Brush 형식 값을 채우는 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, G 및 B 의 값은 구조체에서 해당 색을 나타내는 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 빨간색 채널 값을 가져오거나 설정합니다. |