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
            }
        }