의 색 Xamarin.Forms
이 Color
구조를 사용하면 색을 RGB(Red-Green-Blue) 값, HSL(Hue-Saturation-Luminosity) 값, HSV(Hue-Saturation-Value) 값 또는 색 이름으로 지정할 수 있습니다. 알파 채널을 사용하여 투명성을 나타낼 수도 있습니다.
Color
개체는 생성자를 사용하여 만들 Color
수 있으며 회색 음영, RGB 값 또는 투명도가 있는 RGB 값을 지정하는 데 사용할 수 있습니다. 모든 경우에 인수는 0에서 1 사이의 값입니다 double
.
정적 메서드를 사용하여 개체를 만들 Color
수도 있습니다.
Color.FromRgb
RGB 값의 경우double
0에서 1까지입니다.Color.FromRgb
0에서 255까지의 정수 RGB 값입니다.Color.FromRgba
투명도가 있는 RGB 값의 경우double
Color.FromRgba
투명도가 있는 정수 RGB 값의 경우Color.FromHsla
투명도가 있는 HSL 값의 경우double
Color.FromHsv
HSV 값의 경우double
0에서 1까지입니다.Color.FromHsv
0에서 255까지의 정수 HSV 값의 경우Color.FromHsva
투명도가 있는 HSV 값의 경우double
Color.FromHsva
투명도가 있는 정수 HSV 값의 경우Color.FromUint
계산된 값의uint
경우(B + 256 * (G + 256 * (R + 256 * A)))- "#AARRGGBB", "#RRGGBB", "#ARGB" 또는 "#RGB" 형식의 16진수
string
형식의 경우Color.FromHex
의 각 문자는 알파, 빨강, 녹색 및 파랑 채널의 16진수에 해당합니다.
개체를 Color
만든 후에는 변경할 수 없습니다. 다음 속성에서 색의 특성을 가져올 수 있습니다.
R
- 색의 빨간색 채널을 나타냅니다.G
색의 녹색 채널을 나타내는 입니다.B
- 색의 파란색 채널을 나타냅니다.A
- 색의 알파 채널을 나타냅니다.Hue
- 색의 색조 채널을 나타냅니다.Saturation
- 색의 채도 채널을 나타냅니다.Luminosity
- 색의 광도 채널을 나타냅니다.
이러한 속성은 모두 double
0에서 1 사이의 값입니다.
명명된 색
또한 이 구조는 Color
공용 색에 대한 240개의 공용 정적 읽기 전용 필드(예: AliceBlue
.)를 정의합니다.
Color.Accent
Color.Accent
값은 어둡거나 밝은 배경에 표시되는 플랫폼별(때로는 사용자가 선택할 수 있음) 색을 생성합니다.
Color.Default
값은 Color.Default
모든 채널이 Color
-1로 설정된 것을 정의하며 플랫폼의 색 구성표를 적용하기 위한 것입니다. 따라서 서로 다른 플랫폼의 다양한 컨텍스트에서 다른 의미를 줍니다. 기본적으로 플랫폼 색 구성표는 다음과 같습니다.
- iOS: 밝은 배경의 어두운 텍스트입니다.
- Android: 밝은 배경의 어두운 텍스트입니다.
- Windows: 밝은 배경의 어두운 텍스트입니다.
Color.Transparent
값은 Color.Transparent
모든 채널이 Color
0으로 설정된 것을 정의합니다.
색 수정
여러 인스턴스 메서드를 통해 기존 색을 수정하여 새 색을 만들 수 있습니다.
AddLuminosity
는Color
제공된 델타에 의해 광도를 수정하여 반환합니다.MultiplyAlpha
는Color
알파를 수정하고 제공된 알파 값을 곱하여 반환합니다.ToHex
는 16진string
수 표현을 반환합니다Color
.WithHue
Color
는 제공된 값으로 색조를 바꿔서 반환합니다.WithLuminosity
Color
는 광도를 제공된 값으로 바꿔서 반환합니다.WithSaturation
Color
는 채도를 제공된 값으로 바꿔서 반환합니다.
암시적 변환
형식과 System.Drawing.Color
형식 간의 암시적 변환을 Xamarin.Forms.Color
수행할 수 있습니다.
Xamarin.Forms.Color xfColor = Xamarin.Forms.Color.FromRgb(0, 72, 255);
System.Drawing.Color sdColor = System.Drawing.Color.FromArgb(38, 127, 0);
// Implicity convert from a Xamarin.Forms.Color to a System.Drawing.Color
System.Drawing.Color sdColor2 = xfColor;
// Implicitly convert from a System.Drawing.Color to a Xamarin.Forms.Color
Xamarin.Forms.Color xfColor2 = sdColor;
예제
XAML에서 색은 일반적으로 명명된 값 또는 16진수 표현을 사용하여 참조됩니다.
<Label Text="Sea color"
TextColor="Aqua" />
<Label Text="RGB"
TextColor="#00FF00" />
<Label Text="Alpha plus RGB"
TextColor="#CC00FF00" />
<Label Text="Tiny RGB"
TextColor="#0F0" />
<Label Text="Tiny Alpha plus RGB"
TextColor="#C0F0" />
참고 항목
XAML 컴파일을 사용하는 경우 색 이름은 대/소문자를 구분하지 않으므로 소문자로 작성할 수 있습니다. XAML 컴파일에 대한 자세한 내용은 XAML 컴파일을 참조하세요.
C#에서 색은 일반적으로 명명된 값 또는 정적 메서드를 사용하여 참조됩니다.
Label red = new Label { Text = "Red", TextColor = Color.Red };
Label orange = new Label { Text = "Orange", TextColor = Color.FromHex("FF6A00") };
Label yellow = new Label { Text = "Yellow", TextColor = Color.FromHsla(0.167, 1.0, 0.5, 1.0) };
Label green = new Label { Text = "Green", TextColor = Color.FromRgb (38, 127, 0) };
Label blue = new Label { Text = "Blue", TextColor = Color.FromRgba(0, 38, 255, 255) };
Label indigo = new Label { Text = "Indigo", TextColor = Color.FromRgb (0, 72, 255) };
Label violet = new Label { Text = "Violet", TextColor = Color.FromHsla(0.82, 1, 0.25, 1) };
다음 예제에서는 태그 확장을 사용하여 OnPlatform
선택적으로 색을 설정합니다.ActivityIndicator
<ActivityIndicator Color="{OnPlatform iOS=Black, Default=Default}"
IsRunning="True" />
해당하는 C# 코드는 다음과 같습니다.
ActivityIndicator activityIndicator = new ActivityIndicator
{
Color = Device.RuntimePlatform == Device.iOS ? Color.Black : Color.Default,
IsRunning = true
};