의 색 Xamarin.Forms

Download Sample 샘플 다운로드

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으로 설정된 것을 정의합니다.

색 수정

여러 인스턴스 메서드를 통해 기존 색을 수정하여 새 색을 만들 수 있습니다.

  • AddLuminosityColor 제공된 델타에 의해 광도를 수정하여 반환합니다.
  • MultiplyAlphaColor 알파를 수정하고 제공된 알파 값을 곱하여 반환합니다.
  • ToHex 는 16진 string 수 표현을 반환합니다 Color.
  • WithHueColor는 제공된 값으로 색조를 바꿔서 반환합니다.
  • WithLuminosityColor는 광도를 제공된 값으로 바꿔서 반환합니다.
  • WithSaturationColor는 채도를 제공된 값으로 바꿔서 반환합니다.

암시적 변환

형식과 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
};