MyColorPickerDialog.xaml.cs 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. using GeekDesk.Control.Windows;
  2. using GeekDesk.Util;
  3. using GeekDesk.ViewModel;
  4. using System;
  5. using System.Reflection;
  6. using System.Windows;
  7. using System.Windows.Input;
  8. using System.Windows.Media;
  9. namespace GeekDesk.Control.Other
  10. {
  11. public enum ColorType
  12. {
  13. COLOR_1 = 1,
  14. COLOR_2 = 2,
  15. TEXT_COLOR = 3
  16. }
  17. /// <summary>
  18. /// TextDialog.xaml 的交互逻辑
  19. /// </summary>
  20. public partial class MyColorPickerDialog
  21. {
  22. public static ColorType COLOR_TYPE = new ColorType();
  23. private static AppConfig appConfig = MainWindow.appData.AppConfig;
  24. public static HandyControl.Controls.Dialog dialog;
  25. private System.Windows.Controls.Primitives.ToggleButton toggleButton = null;
  26. private static ColorType colorType;
  27. public MyColorPickerDialog(string strType, string token)
  28. {
  29. InitializeComponent();
  30. switch (strType)
  31. {
  32. case "Color1":
  33. colorType = ColorType.COLOR_1; break;
  34. case "Color2":
  35. colorType = ColorType.COLOR_2; break;
  36. default:
  37. colorType = ColorType.TEXT_COLOR; break;
  38. }
  39. dialog = HandyControl.Controls.Dialog.Show(this, token);
  40. }
  41. /// <summary>
  42. /// 取消按钮事件
  43. /// </summary>
  44. /// <param name="sender"></param>
  45. /// <param name="e"></param>
  46. private void MyColorPicker_Canceled(object sender, EventArgs e)
  47. {
  48. MyColorPickerClose(sender);
  49. }
  50. private void MyColorPicker_Confirmed(object sender, HandyControl.Data.FunctionEventArgs<Color> e)
  51. {
  52. MyColorPickerClose(sender);
  53. }
  54. private void MyColorPicker_SelectedColorChanged(object sender, HandyControl.Data.FunctionEventArgs<Color> e)
  55. {
  56. SolidColorBrush scb = MyColorPicker.SelectedBrush;
  57. Color c = scb.Color;
  58. switch (colorType)
  59. {
  60. case ColorType.COLOR_1:
  61. appConfig.GradientBGParam.Color1 = string.Format("#{0:X2}{1:X2}{2:X2}", c.R, c.G, c.B); break;
  62. case ColorType.COLOR_2:
  63. appConfig.GradientBGParam.Color2 = string.Format("#{0:X2}{1:X2}{2:X2}", c.R, c.G, c.B); break;
  64. default:
  65. appConfig.TextColor = string.Format("#{0:X2}{1:X2}{2:X2}", c.R, c.G, c.B); break;
  66. }
  67. }
  68. /// <summary>
  69. /// 移动窗口
  70. /// </summary>
  71. /// <param name="sender"></param>
  72. /// <param name="e"></param>
  73. private void DragMove(object sender, System.Windows.Input.MouseButtonEventArgs e)
  74. {
  75. if (e.LeftButton == MouseButtonState.Pressed)
  76. {
  77. Window.GetWindow(this).DragMove();
  78. }
  79. }
  80. private void MyColorPicker_Checked(object sender, RoutedEventArgs e)
  81. {
  82. toggleButton = e.OriginalSource as System.Windows.Controls.Primitives.ToggleButton;
  83. PixelColorPickerWindow colorPickerWindow = new PixelColorPickerWindow(MyColorPicker);
  84. colorPickerWindow.Show();
  85. }
  86. private void MyColorPickerClose(object sender)
  87. {
  88. dialog.Close();
  89. }
  90. }
  91. }