Xamarin.Forms.Color为十六进制值

zpe*_*ree 17 c# hex colors xamarin xamarin.forms

我有一个Xamarin.Forms.Color,我想将其转换为'十六进制值'.

到目前为止,我还没有找到解决问题的方法.

我的代码如下:

foreach (var cell in Grid.Children)
{
    var pixel = new Pixel
    {
        XAttribute = cell.X ,

        YAttribute = cell.Y ,

        // I want to convert the color to a hex value here

        Color = cell.BackgroundColor

    };

}
Run Code Online (Sandbox Code Playgroud)

Cod*_*nox 50

只是一个快速修复,最后一行是错误的.

Alpha通道位于其他值之前:

string hex = String.Format("#{0:X2}{1:X2}{2:X2}{3:X2}", alpha, red, green, blue);
Run Code Online (Sandbox Code Playgroud)

这对扩展方法最好:

public static class ExtensionMethods
{
    public static string GetHexString(this Xamarin.Forms.Color color)
    {
        var red = (int)(color.R * 255);
        var green = (int)(color.G * 255);
        var blue = (int)(color.B * 255);
        var alpha = (int)(color.A * 255);
        var hex = $"#{alpha:X2}{red:X2}{green:X2}{blue:X2}";

        return hex;
    }
}
Run Code Online (Sandbox Code Playgroud)


Jas*_*son 10

        var color = Xamarin.Forms.Color.Orange;
        int red = (int) (color.R * 255);
        int green = (int) (color.G * 255);
        int blue = (int) (color.B * 255);
        int alpha = (int)(color.A * 255);
        string hex = String.Format("#{0:X2}{1:X2}{2:X2}{3:X2}", red, green, blue, alpha);
Run Code Online (Sandbox Code Playgroud)