中的色彩 Xamarin.Forms
結構 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.FromUint
uint
針對計算為 (B+ 256 * (G + 256 * (R + 256 * A)) 的值)。Color.FromHex
string
格式為 「#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.Default
會 Color
定義 ,並將所有通道設定為 -1,並打算強制執行平臺的色彩配置。 因此,它在不同平臺上的不同內容中有不同的意義。 平臺色彩設定預設為:
- iOS:淺色背景上的深色文字。
- Android:淺色背景上的深色文字。
- Windows:淺色背景上的深色文字。
Color.Transparent
值 Color.Transparent
會 Color
定義 ,並將所有通道設定為零。
修改色彩
數個實例方法允許修改現有的色彩來建立新的色彩:
AddLuminosity
Color
藉由修改提供的差異的亮度,傳回 。MultiplyAlpha
Color
藉由修改 Alpha 傳回 ,並將它乘以提供的 Alpha 值。ToHex
會傳回的Color
十六進位string
表示。WithHue
會傳Color
回 ,以所提供的值取代色調。WithLuminosity
會傳Color
回 ,以所提供的值取代亮度。WithSaturation
會傳Color
回 ,以所提供的值取代飽和度。
隱含轉換
可以執行和 Xamarin.Forms.Color
System.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
};