ColorConversionExtensions
ColorConversionExtensions
提供一系列支持转换、修改或检查 Color
的扩展方法。
可以在 CommunityToolkit.Maui.Core.Extensions
命名空间下查找 ColorConversionExtensions
,因此只需添加以下行即可开始使用:
using CommunityToolkit.Maui.Core.Extensions;
转换颜色
通过以下方法,可以转换Color
。
ToBlackOrWhite
ToBlackOrWhite
方法将Color
转换为单色值Colors.Black
或Colors.White
。
以下示例演示了如何将Colors.Red
转换为单色值:
using CommunityToolkit.Maui.Extensions.Core;
Colors.Red.ToBlackOrWhite();
ToBlackOrWhiteForText
ToBlackOrWhiteForText
方法根据Color
是否被确定对人眼来说很暗,将Color
转换为单色值Colors.Black
或Colors.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
方法将Color
的alpha组件获取为介于 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.Red
的CMYKA(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.Red
的CMYK(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.Red
的HSLA(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.Red
的HSL(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.Red
的RGBA(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.Red
的RGB(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
的源代码