void AddElement(string elementName, ColorScheme colorScheme) { Color elementColor = colorScheme == null ? Colors.White : colorScheme[elementName].Diffuse; Brush brush = new SolidColorBrush(elementColor); Brush foreground = (((double)elementColor.R + (double)elementColor.B + (double)elementColor.G) / 3.0 < 128) ? Brushes.White : Brushes.Black; Border border = new Border { Margin = new Thickness(1,1,0,1), Width = 18, Height = 18, BorderBrush = Brushes.Silver, BorderThickness = new Thickness(1), Background = brush, }; TextBlock textBlock = new TextBlock { Text = elementName, VerticalAlignment = VerticalAlignment.Center, HorizontalAlignment = HorizontalAlignment.Center, Foreground = foreground, }; border.Child = textBlock; panel.Children.Add(border); }
static ColorScheme() { if (Storage.DirectoryExists(ColorSchemeStorageDirectoryName)) { string[] files = Storage.GetFileNames(ColorSchemeStorageDirectoryName + "\\*"); for (int i = 0; i < files.Length; i++) { colorSchemes.Add(Path.GetFileNameWithoutExtension(files[i])); } } else { Storage.CreateDirectory(ColorSchemeStorageDirectoryName); #region Add default color schemes ColorScheme colorScheme = new ColorScheme("Empty Color Scheme"); colorScheme.SaveAs("Empty Color Scheme"); colorScheme = new ColorScheme("Corey Pauling Koltun's Scheme"); colorScheme.LoadCoreyPaulingKoltunScheme(); colorScheme.SaveAs("Corey Pauling Koltun Scheme"); #endregion } }