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에서 리소스로 정의하는 구문은 다음과 같습니다. 일반적으로 클래스의 값 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.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에서 명명된 색을 설정하는 데 사용되는 특성 문자열 양식과 일치하는 코드에서 색 값을 설정하는 데 유용합니다. 예를 들어 이 속성은 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색 값이 같은 Cyan 새 SolidColorBrush 구문을 암시적으로 만듭니다. XAML에서 브러시 및 색을 사용하는 방법에 대한 자세한 내용은 브러시 사용을 참조하세요.
XAML에서 동일한 색 브러시를 자주 사용하는 경우 새 값의 인라인 암시적 생성을 사용하는 대신 리소스로 정의 SolidColorBrush 해야 합니다. 이는 더 효율적이기 때문입니다. 자세한 내용은 XAML 태그 또는 ResourceDictionary 및 XAML 리소스 참조 최적화를 참조하세요. 시스템에서 정의하는 테마에 대한 병합된 리소스로 액세스할 수 있는 시스템 색을 사용할 수도 있습니다. XAML 테마 리소스를 참조하세요.
직접 색 값을 사용하는 일부 XAML 속성도 있습니다. 이러한 항목은 주로 에 있는 색 값에 Brush애니메이션 효과를 주는 것을 지원합니다. 이 Windows 런타임 보간 논리를 지원하므로 시작/애니메이션에서 한 색에서 다른 색으로 애니메이션 효과를 줄 수 있으며 애니메이션이 애니메이션이 실행될 때 보간된 색 값을 사용합니다. 자세한 내용은 스토리보드 애니메이션을 참조하세요.
XAML 구문에 대한 참고 사항
"#" 토큰을 사용하여 색 값을 16진수 형식으로 지정하는 경우 16진수 값은 원래 16진수 문자열이 아니라 0에서 255 사이의 값으로 구조에 저장됩니다. "sc#" 토큰을 사용하는 경우 값은 원래 값이 0에서 1이 아닌 0에서 255 사이의 값으로 저장됩니다.
명명된 Colors 색에 대한 문자열은 연결된 상수에 따라 해석 되며 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++ 코드는 클래스 및 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된 문자열을 가져옵니다. 예를 들어 호출 ToString 은 Colors.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 빨간색 채널 값을 가져오거나 설정합니다. |
적용 대상
추가 정보
피드백
다음에 대한 사용자 의견 제출 및 보기