ColorEdit.xaml.cs 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using InABox.Wpf;
  2. using System.Windows;
  3. namespace InABox.WPF
  4. {
  5. /// <summary>
  6. /// Interaction logic for ColorSelector.xaml
  7. /// </summary>
  8. public partial class ColorEdit : ThemableWindow
  9. {
  10. public ColorEdit(string title, Color value)
  11. {
  12. InitializeComponent();
  13. Title = title;
  14. Value = value;
  15. }
  16. public Color Value
  17. {
  18. get => Color.FromArgb(Editor.SelectedColor.Value.A, Editor.SelectedColor.Value.R, Editor.SelectedColor.Value.G,
  19. Editor.SelectedColor.Value.B);
  20. set => Editor.SelectedColor = System.Windows.Media.Color.FromArgb(value.A, value.R, value.G, value.B);
  21. }
  22. private void OK_Click(object sender, RoutedEventArgs e)
  23. {
  24. DialogResult = true;
  25. Close();
  26. }
  27. private void Cancel_Click(object sender, RoutedEventArgs e)
  28. {
  29. DialogResult = false;
  30. Close();
  31. }
  32. public static bool Execute(string title, ref Color value)
  33. {
  34. var edit = new ColorEdit(title, value);
  35. if (edit.ShowDialog() == true)
  36. {
  37. value = edit.Value;
  38. return true;
  39. }
  40. return false;
  41. }
  42. }
  43. }