Converting a string HEX to color in Windows Phone Runtime c#

前端 未结 8 1792
执念已碎
执念已碎 2021-02-09 07:30

I am working on a windows phone game, and I got stuck when I wanted to convert a HEX string into Color. On windows phone 8 silverlight it is not a problem but I cannot find a so

8条回答
  •  野的像风
    2021-02-09 07:56

    Color.FromArgb is in the Windows.UI namespace. There isn't a Color.FromName method, but you can use the Colors.< name > properties or you can use reflection to look up the name from a string.

    using System.Reflection;     // For GetRuntimeProperty
    using System.Globalization;  // For NumberStyles
    using Windows.UI;            // for Color and Colors
    using Windows.UI.Xaml.Media; // for SystemColorBrush
    
    // from #AARRGGBB string
    byte a = byte.Parse(hexColor.Substring(1, 2),NumberStyles.HexNumber);
    byte r = byte.Parse(hexColor.Substring(3, 2),NumberStyles.HexNumber);
    byte g = byte.Parse(hexColor.Substring(5, 2),NumberStyles.HexNumber);
    byte b = byte.Parse(hexColor.Substring(7, 2),NumberStyles.HexNumber);
    
    Windows.UI.Color color = Color.FromArgb(a, r, g, b);
    Windows.UI.Xaml.Media.SolidColorBrush br = new SolidColorBrush(color);
    
    // From Name
    var prop = typeof(Windows.UI.Colors).GetRuntimeProperty("Aqua");
    if (prop != null)
    {
        Color c = (Color) prop.GetValue(null);
        br = new SolidColorBrush(c);
    }
    
    // From Property
    br = new SolidColorBrush(Colors.Aqua);
    

提交回复
热议问题