Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Xamarin.Forms.Color to hex value

Tags:

I have a Xamarin.Forms.Color and I want to convert it to a 'hex value'.

So far, I haven't found a solution to my problem.

My code is as follows:

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     }; } 
like image 286
zperee Avatar asked Nov 30 '16 13:11

zperee


2 Answers

Just a quick fix, the last line is wrong.

Alpha channel comes before the other values:

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

and this is best for an extension method:

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;     } } 
like image 198
Code Knox Avatar answered Nov 01 '22 16:11

Code Knox


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); 
like image 44
Jason Avatar answered Nov 01 '22 17:11

Jason