Я хочу сохранить шестнадцатеричное значение цвета (например, «# 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" являются неразрешимыми в моем приложении. Как я могу получить удобочитаемое имя из шестнадцатеричного цвета?
Первое, что вы, вероятно, нужно сделать, это вырезать альфа-канал, то есть первые два шестнадцатеричных цифр .. – TaW