@@ -489,31 +489,45 @@ public static Size MeasureTextSize(string text, double fontSize)
489
489
490
490
public static void ShowColorPicker ( Button button )
491
491
{
492
- using ColorPicker picker = SingleOpenHelper . CreateControl < ColorPicker > ( ) ;
492
+ ColorPicker picker = SingleOpenHelper . CreateControl < ColorPicker > ( ) ;
493
493
HandyControl . Controls . PopupWindow window = new ( )
494
494
{
495
495
PopupElement = picker ,
496
496
WindowStartupLocation = WindowStartupLocation . CenterScreen
497
497
} ;
498
+
498
499
picker . SelectedBrush = ( SolidColorBrush ) button . Tag ;
500
+ picker . Tag = ( window , button ) ;
501
+ picker . Canceled += ColorPicker_Cancelled ;
502
+ picker . Confirmed += ColorPicker_Confirmed ;
499
503
500
- picker . Canceled += delegate
501
- {
502
- window . Close ( ) ;
503
- } ;
504
+ window . ShowDialog ( picker , false ) ;
505
+ }
504
506
505
- picker . Confirmed += delegate
507
+ private static void ColorPicker_Cancelled ( object ? sender , EventArgs e )
508
+ {
509
+ if ( sender is not ColorPicker colorPicker )
506
510
{
507
- ConfirmColor ( button , picker . SelectedBrush , window ) ;
508
- } ;
511
+ return ;
512
+ }
509
513
510
- window . ShowDialog ( picker , false ) ;
514
+ ( HandyControl . Controls . PopupWindow window , _ ) = ( ( HandyControl . Controls . PopupWindow , Button ) ) colorPicker . Tag ;
515
+
516
+ window . Close ( ) ;
517
+ colorPicker . Dispose ( ) ;
511
518
}
512
519
513
- private static void ConfirmColor ( Button button , Brush selectedBrush , Window window )
520
+ private static void ColorPicker_Confirmed ( object ? sender , FunctionEventArgs < Color > e )
514
521
{
515
- SetButtonColor ( button , selectedBrush ) ;
522
+ if ( sender is not ColorPicker colorPicker )
523
+ {
524
+ return ;
525
+ }
526
+
527
+ ( HandyControl . Controls . PopupWindow window , Button button ) = ( ( HandyControl . Controls . PopupWindow , Button ) ) colorPicker . Tag ;
528
+ SetButtonColor ( button , colorPicker . SelectedBrush ) ;
516
529
window . Close ( ) ;
530
+ colorPicker . Dispose ( ) ;
517
531
}
518
532
519
533
public static void SetButtonColor ( Button button , Brush selectedBrush )
0 commit comments