中的色彩 Xamarin.Forms

Download Sample 下載範例

結構 Color 可讓您將色彩指定為 Red-Green-Blue (RGB) 值、Hue-飽和度 -Luminosity (HSL) 值、Hue-飽和值 (HSV) 值或色彩名稱。 Alpha 色板也可用來表示透明度。

Color物件可以使用建構函式來建立Color,這個建構函式可用來指定灰色陰影RGB 值或具有透明度RGB 值。 在所有情況下,自變數都是 double 介於 0 到 1 的值。

您也可以使用靜態方法來建立 Color 物件:

  • Color.FromRgb 針對從 0 到 1 的 double RGB 值。
  • Color.FromRgb 表示從 0 到 255 的整數 RGB 值。
  • Color.FromRgba 針對 double 具有透明度的 RGB 值。
  • Color.FromRgba 表示具有透明度的整數 RGB 值。
  • Color.FromHsla 針對 double 具有透明度的 HSL 值。
  • Color.FromHsv 針對從 0 到 1 的 double HSV 值。
  • Color.FromHsv 表示介於 0 到 255 的整數 HSV 值。
  • Color.FromHsva 針對 double 具有透明度的 HSV 值。
  • Color.FromHsva 表示具有透明度的整數 HSV 值。
  • Color.FromUintuint針對計算為 (B+ 256 * (G + 256 * (R + 256 * A)) 的值)。
  • Color.FromHexstring格式為 「#AARRGGBB」 或 「#RRGGBB」 或 「#ARGB」 或 「#RGB」 格式的十六進位數位,其中每個字母會對應至 alpha、紅色、綠色和藍色通道的十六進位數位。

建立之後, Color 對像是不可變的。 色彩的特性可以從下列屬性取得:

  • R,表示色彩的紅色色板。
  • G,表示色彩的綠色色板。
  • B,表示色彩的藍色色板。
  • A,表示色彩的Alpha色板。
  • Hue,表示色彩的色調色板。
  • Saturation,表示色彩的飽和度色板。
  • Luminosity,表示色彩的亮度色板。

這些屬性都是範圍從 0 到 1 的所有 double 值。

具名色彩

結構 Color 也會針對常見色彩定義 240 個公用靜態只讀字段,例如 AliceBlue

Color.Accent

此值 Color.Accent 會產生平臺特定的色彩(有時是用戶可選取的)色彩,在深色或淺色背景上可見。

Color.Default

Color.DefaultColor 定義 ,並將所有通道設定為 -1,並打算強制執行平臺的色彩配置。 因此,它在不同平臺上的不同內容中有不同的意義。 平臺色彩設定預設為:

  • iOS:淺色背景上的深色文字。
  • Android:淺色背景上的深色文字。
  • Windows:淺色背景上的深色文字。

Color.Transparent

Color.TransparentColor 定義 ,並將所有通道設定為零。

修改色彩

數個實例方法允許修改現有的色彩來建立新的色彩:

  • AddLuminosityColor藉由修改提供的差異的亮度,傳回 。
  • MultiplyAlphaColor藉由修改 Alpha 傳回 ,並將它乘以提供的 Alpha 值。
  • ToHex會傳回的Color十六進位string表示。
  • WithHue 會傳 Color回 ,以所提供的值取代色調。
  • WithLuminosity 會傳 Color回 ,以所提供的值取代亮度。
  • WithSaturation 會傳 Color回 ,以所提供的值取代飽和度。

隱含轉換

可以執行和 Xamarin.Forms.ColorSystem.Drawing.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 中,色彩通常會使用其具名值或十六進位表示法來參考:

<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
};