ColorConversionExtensions

ColorConversionExtensions 提供一系列支持转换、修改或检查 Color 的扩展方法。

可以在 CommunityToolkit.Maui.Core.Extensions 命名空间下查找 ColorConversionExtensions,因此只需添加以下行即可开始使用:

using CommunityToolkit.Maui.Core.Extensions;

转换颜色

通过以下方法,可以转换Color

ToBlackOrWhite

ToBlackOrWhite方法将Color转换为单色值Colors.BlackColors.White

以下示例演示了如何将Colors.Red转换为单色值:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.ToBlackOrWhite();

ToBlackOrWhiteForText

ToBlackOrWhiteForText方法根据Color是否被确定对人眼来说很暗,将Color转换为单色值Colors.BlackColors.White

以下示例演示了如何将Colors.Red转换为单色值:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.ToBlackOrWhiteForText();

ToGrayScale

ToGrayScale方法将Color转换为灰度Color

以下示例演示了如何将Colors.Red转换为灰度值:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.ToGrayScale();

ToInverseColor

ToInverseColor方法反转Color

以下示例演示了如何反转Colors.Red

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.ToInverseColor();

确定颜色暗度

通过以下方法,可以确定Color是否被视为很暗。

IsDark

如果Color很暗,则选IsDark方法。

以下示例演示了如何确定Colors.Red是否被视为很暗:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.IsDark();

IsDarkForTheEye

如果Color对人眼来说很暗,则选IsDarkForTheEye方法。

以下示例演示如何了确定Colors.Red是否被视为对人眼来说很暗:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.IsDarkForTheEye();

获取颜色组件

通过以下方法,可以获取Color的组件之一。

GetByteRed

GetByteRed方法将Color红色组件获取为介于 0 和 255 之间的值。

以下示例演示如何了获取Colors.Red的红色组件:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.GetByteRed();

GetByteGreen

GetByteGreen方法将Color绿色组件获取为介于 0 和 255 之间的值。

以下示例演示如何了获取Colors.Red的绿色组件:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.GetByteGreen();

GetByteBlue

GetByteBlue方法将Color蓝色组件获取为介于 0 和 255 之间的值。

以下示例演示如何了获取Colors.Red的蓝色组件:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.GetByteBlue();

GetDegreeHue

GetDegreeHue方法将Color色调组件获取为介于 0 和 360 之间的值。

以下示例演示如何了获取Colors.Red的色调组件:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.GetDegreeHue();

GetPercentCyan

GetPercentCyan方法将Color青色组件获取为介于 0 和 1 之间的值。

以下示例演示如何了获取Colors.Red的青色组件:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.GetPercentCyan();

GetPercentMagenta

GetPercentMagenta方法将Color洋红色组件获取为介于 0 和 1 之间的值。

以下示例演示如何了获取Colors.Red的洋红色组件:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.GetPercentMagenta();

GetPercentYellow

GetPercentYellow方法将Color黄色组件获取为介于 0 和 1 之间的值。

以下示例演示如何了获取Colors.Red的黄色组件:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.GetPercentYellow();

GetPercentBlackKey

GetPercentBlackKey方法将Color黑键组件获取为介于 0 和 1 之间的值。

以下示例演示如何了获取Colors.Red的黑键组件:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.GetPercentBlackKey();

GetByteAlpha

GetByteAlpha方法将Coloralpha组件获取为介于 0 和 255 之间的值。

以下示例演示如何了获取Colors.Red的 alpha 组件:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.GetByteAlpha();

To Color 字符串

通过以下方法,可以将Color转换为配色方案string

ToCmykaString

ToCmykaString方法将Color转换为包含青色、洋红色、黄色和键组件的string。 生成的string将采用以下格式:CMYKA(cyan,magenta,yellow,key,alpha),其中青色洋红色黄色将是介于 0% 和 100% 之间的值,alpha将是介于 0 和 1 之间的值(例如,Colors.RedCMYKA(0%,100%,100%,0%,1))。

以下示例演示了如何将Colors.Red转换为 CMYKA 字符串:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.ToCmykaString();

根据区域性设置,alpha值可能具有不同的 分隔符:

new Color(0, 0, 0, 0.5f).ToCmykaString(new System.Globalization.CultureInfo("en-US")); // returns "CMYKA(0%,0%,0%,100%,0.5)"
new Color(0, 0, 0, 0.5f).ToCmykaString(new System.Globalization.CultureInfo("uk-UA")); // returns "CMYKA(0%,0%,0%,100%,0,5)"

ToCmykString

ToCmykString方法将Color转换为包含青色、洋红色、黄色和键组件的string。 生成的string将采用以下格式:CMYK(cyan,magenta,yellow,key),其中青色洋红色黄色将是介于 0% 和 100% 之间的值(例如,Colors.RedCMYK(0%,100%,100%,0%))。

以下示例演示了如何将Colors.Red转换为 CMYK 字符串:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.ToCmykString();

ToHslaString

ToHslaString方法将Color转换为包含青色、洋红色、黄色和键组件的string。 生成的string将采用以下格式:HSLA(hue,saturation,lightness,alpha),其中色调将是介于 0 和 360 之间的值,饱和度饱和度将是介于 0% 和 100% 之间的值,alpha将是介于 0 和 1 之间的值(例如,Colors.RedHSLA(0,100%,50%,1))。

以下示例演示了如何将Colors.Red转换为 HSLA 字符串:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.ToHslaString();

根据区域性设置,alpha值可能具有不同的 分隔符:

new Color(0, 0, 0, 0.5f).ToHslaString(new System.Globalization.CultureInfo("en-US")); // returns "HSLA(0%,0%,0%,100%,0.5)"
new Color(0, 0, 0, 0.5f).ToHslaString(new System.Globalization.CultureInfo("uk-UA")); // returns "HSLA(0%,0%,0%,100%,0,5)"

ToHslString

ToHslString方法将Color转换为包含青色、洋红色、黄色和键组件的string。 生成的string将采用以下格式:HSL(hue,saturation,lightness),其中色调将是介于 0 和 360 之间的值,饱和度饱和度将是介于 0% 和 100% 之间的值(例如,Colors.RedHSL(0,100%,50%))。

以下示例演示了如何将Colors.Red转换为 HSL 字符串:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.ToHslString();

ToRgbaString

ToRgbaString方法将Color转换为包含红色、绿色、蓝色和 alpha 组件的string。 生成的string将采用以下格式:RGB(red,green,blue,alpha),其中红色绿色蓝色将是介于 0 和 255 之间的值,alpha将是介于 0 和 1 之间的值(例如,Colors.RedRGBA(255,0,0,1))。

以下示例演示了如何将Colors.Red转换为 RGBA 字符串:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.ToRgbaString();

根据区域性设置,alpha值可能具有不同的 分隔符:

new Color(0, 0, 0, 0.5f).ToRgbaString(new System.Globalization.CultureInfo("en-US")); // returns "RGBA(0,0,0,0.5)"
new Color(0, 0, 0, 0.5f).ToRgbaString(new System.Globalization.CultureInfo("uk-UA")); // returns "RGBA(0,0,0,0,5)"

ToRgbString

ToRgbString方法将Color转换为包含红色、绿色和蓝色组件的string。 生成的string将采用以下格式:RGB(red,green,blue),其中红色绿色蓝色将是介于 0 和 255 之间的值(例如,Colors.RedRGB(255,0,0))。

以下示例演示了如何将Colors.Red转换为 RGB 字符串:

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.ToRgbString();

使用颜色组件

通过以下方法,可以替换Color的组件之一。

WithRed

WithRed方法将提供的redComponent应用于Color。 请注意,redComponent可以是介于 0 到 1 之间的double,也可以是介于 0 到 255 之间的byte

以下示例演示如何将红色组件应用于Colors.Red

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.WithRed(0.5);

WithGreen

WithGreen方法将提供的greenComponent应用于Color。 请注意,greenComponent可以是介于 0 到 1 之间的double,也可以是介于 0 到 255 之间的byte

以下示例演示如何将绿色组件应用于Colors.Red

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.WithGreen(0.5);

WithBlue

WithBlue方法将提供的blueComponent应用于Color。 请注意,blueComponent可以是介于 0 到 1 之间的double,也可以是介于 0 到 255 之间的byte

以下示例演示如何将蓝色组件应用于Colors.Red

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.WithBlue(0.5);

WithCyan

WithCyan方法将提供的cyanComponent应用于Color。 请注意,cyanComponent必须是介于 0 和 1 之间的值。

以下示例演示如何将青色组件应用于Colors.Red

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.WithCyan(0.5);

WithMagenta

WithMagenta方法将提供的magentaComponent应用于Color。 请注意,magentaComponent必须是介于 0 和 1 之间的值。

以下示例演示如何将洋红色组件应用于Colors.Red

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.WithMagenta(0.5);

WithYellow

WithYellow方法将提供的yellowComponent应用于Color。 请注意,yellowComponent必须是介于 0 和 1 之间的值。

以下示例演示如何将黄色组件应用于Colors.Red

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.WithYellow(0.5);

WithBlackKey

WithBlackKey方法将提供的blackKeyComponent应用于Color。 请注意,blackKeyComponent必须是介于 0 和 1 之间的值。

以下示例演示如何将黑键组件应用于Colors.Red

using CommunityToolkit.Maui.Extensions.Core;

Colors.Red.WithBlackKey(0.5);

示例

可以在 .NET MAUI 社区工具包示例应用程序中查找此扩展的示例。

API

可以在 .NET MAUI 社区工具包 GitHub 存储库查看ColorConversionExtensions 的源代码