ASP.Net/XML/Web safe color
Web safe color list
<source lang="csharp">
<%-- Pro ASP.NET Web Forms Techniques, Second Edition By Alex Homer ISBN: 1-59059-317-0 Published: Dec 2003 Publisher: Apress.ru --%>
<%@Page Language="C#" %> <%@Import Namespace="System.Drawing" %> <script runat="server"> void Page_Load() {
// array to hold list of 168 "known" colors Color[] aKnownCols = new Color[168]; KnownColor eValue; for (eValue = 0; eValue <= KnownColor.YellowGreen; eValue++) { aKnownCols[(int) eValue] = Color.FromKnownColor(eValue); } // array to hold list of 216 browser-safe colors Color[] aSafeCols = new Color[216]; int rValue, gValue, bValue; int iPointer = 0; for (rValue = 0; rValue <= 255; rValue += 51) { for (gValue = 0; gValue <= 255; gValue += 51) { for (bValue = 0; bValue <= 255; bValue += 51) { aSafeCols[iPointer] = Color.FromArgb(rValue, gValue, bValue); iPointer += 1; } } } // create a table containing the browser-safe colors // and indicate any matching .NET standard color // declare variables, we"ll create 5 rows simultaneously TableRow oRow1, oRow2, oRow3, oRow4, oRow5; TableCell oCell; Color oKnown; String sDecimalVals, sHexVals, sKnown; // to create empty cell with colored background String sColorCell = " "; // create empty Table object and five Row objects Table oTable = new Table(); oRow1 = new TableRow(); oRow2 = new TableRow(); oRow3 = new TableRow(); oRow4 = new TableRow(); oRow5 = new TableRow(); // set horizontal alignment for three rows oRow2.HorizontalAlign = HorizontalAlign.Center; oRow3.HorizontalAlign = HorizontalAlign.Center; oRow4.HorizontalAlign = HorizontalAlign.Center; // iterate through array of safe colors foreach (Color oColor in aSafeCols) { // create the strings showing decimal and hex RGB values sDecimalVals = oColor.R.ToString() + "," + oColor.G.ToString() + "," + oColor.B.ToString(); sHexVals = "#" + oColor.R.ToString("x2") + oColor.G.ToString("x2") + oColor.B.ToString("x2"); // see if this color is same as any standard color by iterating // through "known" colors array and comparing ARGB values. // not breaking at first match avoids returning "system" colors // such as "DialogText" and "WindowTitleBarText" which come first sKnown = ""; foreach (Color oEKnown in aKnownCols) { if (oEKnown.ToArgb() == oColor.ToArgb()) { sKnown = oEKnown.Name; } } // create a new cell, and add LiteralControl containing value oCell = new TableCell(); oCell.Controls.Add(new LiteralControl(sColorCell)); // set properties for this cell, and add to row 1 oCell.BorderColor = Color.Black; oCell.BorderStyle = BorderStyle.Solid; oCell.BorderWidth = Unit.Pixel(1); oCell.BackColor = oColor; oRow1.Cells.Add(oCell); // repeat for cells containing decimal and hex RGB values oCell = new TableCell(); oCell.Controls.Add(new LiteralControl(sDecimalVals)); oRow2.Cells.Add(oCell); oCell = new TableCell(); oCell.Controls.Add(new LiteralControl(sHexVals)); oRow3.Cells.Add(oCell); // create cell for matching "known" color if there is one oCell = new TableCell(); if (sKnown != "") { oCell.Controls.Add(new LiteralControl(sKnown)); // create color object using "known" color name Color oEKnown = Color.FromName(sKnown); oCell.BackColor = oEKnown; oCell.BorderColor = Color.Black; oCell.BorderStyle = BorderStyle.Solid; oCell.BorderWidth = Unit.Pixel(1); // see if we need to use white text on this background // color when displaying color name in cell if (oEKnown.R < 124 && oEKnown.G < 124) { oCell.ForeColor = Color.White; } } // add "known color" cell to row 4 oRow4.Cells.Add(oCell); // create cell in row 5 to provide space between color rows oCell = new TableCell(); oCell.Controls.Add(new LiteralControl(" ")); oRow5.Cells.Add(oCell); // if Blue element of color has reached 255 start a new row // add five existing rows to table, create new ones and set // horizontal alignment for the three of them holding text if (oColor.B == 255) { oTable.Rows.Add(oRow1); oTable.Rows.Add(oRow2); oTable.Rows.Add(oRow3); oTable.Rows.Add(oRow4); oTable.Rows.Add(oRow5); oRow1 = new TableRow(); oRow2 = new TableRow(); oRow3 = new TableRow(); oRow4 = new TableRow(); oRow5 = new TableRow(); oRow2.HorizontalAlign = HorizontalAlign.Center; oRow3.HorizontalAlign = HorizontalAlign.Center; oRow4.HorizontalAlign = HorizontalAlign.Center; } } // table complete, so insert into page within PlaceHolder control ctlPlaceholder.Controls.Add(oTable);
} </script> <!doctype html public "-//W3C//DTD HTML 3.2 Final//EN"> <html> <head> <title>Browser-safe and Standard Colors</title> </head> <body> Browser-safe and Standard Colors <asp:PlaceHolder id="ctlPlaceholder" runat="server" /> </body> </html>
</source>