PlasmaVNGaming

Untitled

Dec 12th, 2021
520
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.63 KB | None | 0 0
  1. public static class TitleBarCommand {
  2. public static RoutedCommand CloseWindowCommand { get; set; }
  3. public static RoutedCommand MaximizeWindowCommand { get; set; }
  4. public static RoutedCommand MinimizeWindowCommand { get; set; }
  5. public static RoutedCommand MouseMoveWindowCommand { get; set; }
  6.  
  7. static TitleBarCommand() {
  8. CloseWindowCommand = new RoutedCommand();
  9. CommandManager.RegisterClassCommandBinding(typeof(Window)
  10. , new CommandBinding(CloseWindowCommand, CloseWindowCommandHandle, TitleBarCommandCanExecute));
  11.  
  12. MaximizeWindowCommand = new RoutedCommand();
  13. CommandManager.RegisterClassCommandBinding(typeof(Window)
  14. , new CommandBinding(MaximizeWindowCommand, MaximizeWindowCommandHandle, TitleBarCommandCanExecute));
  15.  
  16. MinimizeWindowCommand = new RoutedCommand();
  17. CommandManager.RegisterClassCommandBinding(typeof(Window)
  18. , new CommandBinding(MinimizeWindowCommand, MinimizeWindowCommandHandle, TitleBarCommandCanExecute));
  19.  
  20. MouseMoveWindowCommand = new RoutedCommand();
  21. CommandManager.RegisterClassCommandBinding(typeof(Window)
  22. , new CommandBinding(MouseMoveWindowCommand, MouseMoveWindowCommandHandle, TitleBarCommandCanExecute));
  23. }
  24.  
  25. private static void TitleBarCommandCanExecute(object sender, CanExecuteRoutedEventArgs args) {
  26. if (args.Command != CloseWindowCommand && args.Command != MaximizeWindowCommand
  27. && args.Command != MinimizeWindowCommand && args.Command != MouseMoveWindowCommand)
  28. return;
  29. object Parameter = args.Parameter;
  30. if (Parameter == null || !(Parameter is DependencyObject)) {
  31. args.CanExecute = false;
  32. return;
  33. }
  34. args.CanExecute = true;
  35. }
  36.  
  37. private static void CloseWindowCommandHandle(object sender, ExecutedRoutedEventArgs args) {
  38. if (args.Command != CloseWindowCommand)
  39. return;
  40. object Parameter = args.Parameter;
  41. Window.GetWindow(Parameter as DependencyObject)?.Close();
  42. }
  43.  
  44. private static void MaximizeWindowCommandHandle(object sender, ExecutedRoutedEventArgs args) {
  45. if (args.Command != MaximizeWindowCommand)
  46. return;
  47. object Parameter = args.Parameter;
  48. Window parentWindow = Window.GetWindow(Parameter as DependencyObject);
  49. if (parentWindow != null) {
  50. parentWindow.WindowState = parentWindow.WindowState != WindowState.Maximized
  51. ? WindowState.Maximized
  52. : WindowState.Normal;
  53. }
  54. }
  55.  
  56. private static void MinimizeWindowCommandHandle(object sender, ExecutedRoutedEventArgs args) {
  57. if (args.Command != MinimizeWindowCommand)
  58. return;
  59. object Parameter = args.Parameter;
  60. Window parentWindow = Window.GetWindow(Parameter as DependencyObject);
  61. if (parentWindow != null) {
  62. parentWindow.WindowState = parentWindow.WindowState != WindowState.Minimized
  63. ? WindowState.Minimized
  64. : WindowState.Normal;
  65. }
  66. }
  67.  
  68. private static void MouseMoveWindowCommandHandle(object sender, ExecutedRoutedEventArgs args) {
  69. if (args.Command != MouseMoveWindowCommand)
  70. return;
  71. object Parameter = args.Parameter;
  72. Window.GetWindow(Parameter as DependencyObject)?.DragMove();
  73. }
  74. }
Advertisement
Add Comment
Please, Sign In to add comment