in Tools/Apps/Microsoft.PowerApps.ThemeEditor/Converters/KeyToColorConverter.cs [13:60]
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
try
{
if (parameter != null)
{
string[] substrings = parameter.ToString().Split(new char[] { '.' });
string style = substrings[0];
string property = substrings[1];
MainViewModel model = ServiceLocator.Current.GetInstance<MainViewModel>();
if (model.Palettes != null)
{
string key = model.Styles.SingleOrDefault(s => s.name == style).propertyValuesMap.SingleOrDefault(s => s.property == property).value.Replace("Palette.", "").Replace("%", "");
PaletteViewModel palette = model.Palettes.FirstOrDefault(s => s.name == key);
if (palette != null)
{
string colorString = palette.value;
if (colorString.Contains("ColorFade"))
return Colors.Black;
if (!colorString.Contains("RGBA("))
return Colors.Black;
int start = colorString.IndexOf("(");
int end = colorString.IndexOf(")");
var rgba = colorString.Substring(start + 1, end - start - 1);
string[] colors = rgba.Split(new char[] { ',' });
var alpha = (byte)(float.Parse(colors[3]) * 255);
Color x = Color.FromArgb(alpha, byte.Parse(colors[0]), byte.Parse(colors[1]), byte.Parse(colors[2]));
return new SolidColorBrush(x);
}
}
}
return new SolidColorBrush(Colors.Black);
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
return new SolidColorBrush(Colors.Black);
}
}