private void CloseWithTag(object sender, RoutedEventArgs e)
        {
            MainWindow.StoreColors(PredefinedColors.ToList());
            var messageBoxResult = (MessageBoxResult)((Button)sender).Tag;

            Result = messageBoxResult;
        }
 public void Replace(Color c1, Color c2)
 {
     foreach (var color in PredefinedColors.ToList().Where(c => c.ToHexColor().Equals(c1.ToHexColor())))
     {
         var ind = PredefinedColors.IndexOf(color);
         PredefinedColors[ind] = c2;
     }
 }
        private void AddPredefined(object sender, RoutedEventArgs e)
        {
            var cd = new ColorWindow {
                Owner = this, PredefinedColors = PredefinedColors, StartColor = Colors.Black
            };

            if (cd.ShowDialog() == true && cd.Result != MessageBoxResult.Cancel)
            {
                PredefinedColors = cd.PredefinedColors;
                PredefinedColors.Add(cd.SelectedColor);
                MainWindow.StoreColors(PredefinedColors.ToList());
            }
        }
        private void CheckDouble(object sender, MouseButtonEventArgs e)
        {
            if (e.ClickCount == 2)
            {
                e.Handled = true;
                var cd = new ColorWindow {
                    Owner = this, ShowPredefined = false, StartColor = ((SolidColorBrush)((Button)sender).Background).Color
                };

                if (cd.ShowDialog() == true && cd.Result != MessageBoxResult.Cancel)
                {
                    Replace(((SolidColorBrush)((Button)sender).Background).Color, cd.SelectedColor);
                    MainWindow.StoreColors(PredefinedColors.ToList());
                    SetColor(e.ChangedButton == MouseButton.Left, (Button)sender);
                }
            }
            else
            {
                SetColor(e.ChangedButton == MouseButton.Left, (Button)sender);
            }
        }