2014-11-30 3 views
1

Я хочу сохранить шестнадцатеричное значение цвета (например, «# FFFF1493») в качестве его «удобного для человека» имени (например, «DeepPink»).Как преобразовать значение шестнадцатеричного цвета в его понятное для строки представление строки?

С помощью SLaks и nvoigt here, Я теперь получил этот код:

if (sender is Canvas) 
{ 
    var canvas = sender as Canvas; 
    var brush = canvas.Background as SolidColorBrush; 
    var color = brush.Color; 
    String brushColorAsStr = color.ToString(); 

    IAppSettings appSettings; 
    if (App.SaveSettingsLocally) 
    { 
     appSettings = new AppSettingLocal(); 
    } 
    else 
    { 
     appSettings = new AppSettingsRemote(); 
    } 
    appSettings.SaveSetting(VisitsConsts.APP_BAR_COLOR_SETTING, brushColorAsStr); 
} 

... но значение в brushColorAsStr является "# FFFF1493" (когда я нажимаю управление DeepPink холст), и что не работает с моим кодом, чтобы изменить приложение бар цвета на основе цвета выбранного:

String brushColor = appSettings.GetSetting(VisitsConsts.APP_BAR_COLOR_SETTING); 
if (null == brushColor) return; 

if (brushColor.Equals("Blue")) 
{ 
    CmdBar.Background = new SolidColorBrush(Colors.Blue); 
} 
else if (brushColor.Equals("Aqua")) 
. . . 

от here я получил эти предложения:

Color colour = (Color)ColorConverter.ConvertFromString(brushColorAsStr); 
System.Drawing.Color col = System.Drawing.ColorTranslator.FromHtml(brushColorAsStr); 

... но "ColorConverter" и "Drawing" являются неразрешимыми в моем приложении. Как я могу получить удобочитаемое имя из шестнадцатеричного цвета?

+0

Первое, что вы, вероятно, нужно сделать, это вырезать альфа-канал, то есть первые два шестнадцатеричных цифр .. – TaW

ответ

3

Существует не отображение чисел на имена, но карты цветов класса от имен в номера. Вы можете использовать отражение для построения обратного отображения.

Посмотреть этот предыдущий ответ для образца кода: How to convert a Windows.UI.Color into a string color name in a Windows Universal app

1
+1

Нету; те тоже используют классы, которые недоступны мне/разрешимы мной. Не говорите мне, что мне придется в конечном итоге делать «if color ==» gobbledygookHexJunq «...» –

Смежные вопросы