private static void UndoCommand_Executed(object sender, ExecutedRoutedEventArgs e) { // Use simple reverse-or-redo Undo (like Notepad). ColorPickerUserControl colorPicker = (ColorPickerUserControl)sender; colorPicker.Color = (Color)colorPicker.previousColor; }
private static void OnColorChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { ColorPickerUserControl colorPicker = (ColorPickerUserControl)sender; Color oldColor = (Color)e.OldValue; Color newColor = (Color)e.NewValue; colorPicker.Red = newColor.R; colorPicker.Green = newColor.G; colorPicker.Blue = newColor.B; colorPicker.previousColor = oldColor; colorPicker.OnColorChanged(oldColor, newColor); }
private static void OnColorRGBChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) { ColorPickerUserControl colorPicker = (ColorPickerUserControl)sender; Color color = colorPicker.Color; if (e.Property == RedProperty) { color.R = (byte)e.NewValue; } else if (e.Property == GreenProperty) { color.G = (byte)e.NewValue; } else if (e.Property == BlueProperty) { color.B = (byte)e.NewValue; } colorPicker.Color = color; }
private static void UndoCommand_CanExecute(object sender, CanExecuteRoutedEventArgs e) { ColorPickerUserControl colorPicker = (ColorPickerUserControl)sender; e.CanExecute = colorPicker.previousColor.HasValue; }