using System.Drawing; //... [TestMethod] public void ColorTest() { //HTML hex color values and expected int conversions Dictionary<string, int> testValues = new Dictionary<string, int> { { "#000000", 0 }, { "#000001", 1 }, { "#000100", 256 }, { "#010000", 65536 }, { "#666666", 6710886 }, { "#AAAAAA", 11184810 }, { "#FFFFFF", 16777215 }, { "#C25454", 12735572 }, { "#54C254", 5554772 } }; foreach (string htmlColor in testValues.Keys) { //Drop the # string hexString = htmlColor.Substring(1); //convert the 6 char hex color value to an int //similar to the JavaScript parseInt(hexString, 16) function int convertedValue = Convert.ToInt32(hexString, 16); int convertedValueAlternative = int.Parse(hexString, System.Globalization.NumberStyles.HexNumber); Assert.AreEqual(convertedValue, convertedValueAlternative); //convert the int to the 6 char hex color value string hexStringFromInt = convertedValue.ToString("X").PadLeft(6, '0'); Assert.AreEqual(hexString, hexStringFromInt); //Check that the converted value matches the expected value int expectedValue = testValues[htmlColor]; Assert.AreEqual(expectedValue, convertedValue); //Get the System.Drawing.Color from the hex color value Color c = ColorTranslator.FromHtml(htmlColor); //Get the hex color value from the System.Drawing.Color string htmlHexColor = ColorTranslator.ToHtml(c); Assert.AreEqual(htmlColor, htmlHexColor); } }