顏色
命名空間 Color 中的 Microsoft.Maui.Graphics 類別可讓您將色彩指定為 Red-Green-Blue (RGB) 值、Hue-飽和度 -Luminosity (HSL) 值、Hue-飽和值 (HSV) 值或色彩名稱。 Alpha 色板也可用來表示透明度。
Color 物件可以使用建構函式來建立 Color ,可用來指定灰色陰影、RGB 值或具有透明度的 RGB 值。 建構函式多載接受 float
介於 0 到 1、 byte
和 int
值之間的值。
您也可以使用下列靜態方法來建立 Color 物件:
Color.FromRgb
從float
範圍從 0 到 1 的 RGB 值。Color.FromRgb
從double
範圍從 0 到 1 的 RGB 值。Color.FromRgb
從byte
範圍從 0 到 255 的 RGB 值。Color.FromInt
從int
範圍從 0 到 255 的 RGB 值。Color.FromRgba
從float
範圍從 0 到 1 的 RGBA 值。Color.FromRgba
從double
範圍從 0 到 1 的 RGBA 值。Color.FromRgba
從byte
範圍從 0 到 255 的 RGBA 值。Color.FromRgba
從int
範圍從 0 到 255 的 RGBA 值。Color.FromRgba
string
從格式為 「#RRGGBBAA」 或 「#RRGGBB」 或 「#RGBA」 或 「#RGB」 的十六進位值,其中每個字母會對應至 alpha、紅色、綠色和藍色通道的十六進位數位。Color.FromHsla
來自float
HSLA 值。Color.FromHsla
來自double
HSLA 值。Color.FromHsv
從float
範圍從 0 到 1 的 HSV 值。Color.FromHsv
從int
範圍從 0 到 255 的 HSV 值。Color.FromHsva
來自float
HSVA 值。Color.FromHsva
來自int
HSV 值。Color.FromInt
int
從計算為 (B+ 256 * (G + 256 * (R + 256 * A)) 的值。Color.FromUint
uint
從計算為 (B+ 256 * (G + 256 * (R + 256 * A)) 的值。Color.FromArgb
string
從格式為 「#AARRGGBB」 或 「#RRGGBB」 或 「#ARGB」 或 「RGB」 的十六進位值,其中每個字母會對應到alpha、紅色、綠色和藍色通道的十六進位數位。
建立之後, Color 對像是不可變的。 色彩的特性可以從下列 float
欄位取得,範圍從 0 到 1:
此外,可以從下列方法取得色彩的特性:
- GetHue,其會傳
float
回 ,表示色彩的色調色板。 - GetSaturation,其會傳
float
回 ,表示色彩的飽和度色板。 - GetLuminosity,其會傳
float
回 ,表示色彩的亮度色板。
具名色彩
類別 Colors 會針對通用色彩定義 148 個公用靜態只讀字段,例如 AntiqueWhite
、 MidnightBlue
和 YellowGreen
。
修改色彩
下列實例方法會修改現有的色彩,以建立新的色彩:
- AddLuminosity 將 Color 亮度值新增至提供的差異值,以傳回 。
- GetComplementary 傳回互補 Color的 。
- MultiplyAlpha 傳 Color 回 ,方法是將 Alpha 值乘以提供的
float
值。 - WithAlpha 會傳 Color回 ,將Alpha值取代為提供的
float
值。 - WithHue 會傳 Color回 ,將 hue 值取代為提供的
float
值。 - WithLuminosity 會傳 Color回 ,將亮度值取代為提供
float
的值。 - WithSaturation 會傳 Color回 ,將飽和度值取代為提供
float
的值。
轉換
下列實例方法會將 轉換成 Color 替代表示法:
- AsPaint 會傳 SolidPaint 回 物件,其 Color 屬性設定為色彩。
- ToHex會傳回的Color十六進位
string
表示。 - ToArgbHex 會傳回的 ARGB 十六進位
string
表示法 Color。 - ToRgbaHex會傳回的 ColorRGBA 十六進位
string
表示法。 - ToInt會傳回的ColorARGB
int
表示。 - ToUint會傳回的ColorARGB
uint
表示。 - ToRgb將 Color 轉換為以自變數傳回的
out
RGBbyte
值。 - ToRgba將 Color 轉換為以自變數傳回的
out
RGBAbyte
值。 - ToHsl將 Color 轉換為傳遞為
out
自變數的 HSLfloat
值。
範例
在 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" />
在 C# 中,色彩通常會使用其具名值或靜態方法來參考:
Label red = new Label { Text = "Red", TextColor = Colors.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 AliceBlue, iOS=MidnightBlue}"
IsRunning="True" />
對等的 C# 程式碼為:
ActivityIndicator activityIndicator = new ActivityIndicator
{
Color = DeviceInfo.Platform == DevicePlatform.iOS ? Colors.MidnightBlue : Colors.AliceBlue,
IsRunning = true
};