简体   繁体   中英

How to convert a string into a color

I am trying to convert a string like the following: {100,100,100} into a System.Drawing.Color object. What is the best approach for accomplishing this task?

I think this should work:

private Color GetColorByString(string String)
    {
        string[] ColorValues = String.Split(',', '.', ' ');

        for (int i = 0; i < ColorValues.Length; i++)
        {
            ColorValues[i] = new System.Text.RegularExpressions.Regex(@"[^\d]").Replace(ColorValues[i], "");
        }
        try
        {
            return Color.FromArgb(Convert.ToInt32(ColorValues[0]), Convert.ToInt32(ColorValues[1]), Convert.ToInt32(ColorValues[2]));
        }
        catch { return new Color(); }
    }

And you can use it like this:

Color NewColor = GetColorByString("{100,100,100}");

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM