Browse Source

Close context menu on color click

Krzysztof Krysiński 2 years ago
parent
commit
be821c6e5a

+ 8 - 1
src/PixiEditor/ViewModels/SubViewModels/Main/ColorsViewModel.cs

@@ -4,7 +4,7 @@ using System.Windows.Media;
 using Microsoft.Extensions.DependencyInjection;
 using Microsoft.Extensions.DependencyInjection;
 using PixiEditor.Helpers;
 using PixiEditor.Helpers;
 using PixiEditor.Localization;
 using PixiEditor.Localization;
-using PixiEditor.Models.Commands.Attributes.Commands;
+using PixiEditor.Models.Commands.XAML;
 using PixiEditor.Models.Controllers;
 using PixiEditor.Models.Controllers;
 using PixiEditor.Models.DataHolders;
 using PixiEditor.Models.DataHolders;
 using PixiEditor.Models.DataHolders.Palettes;
 using PixiEditor.Models.DataHolders.Palettes;
@@ -16,6 +16,7 @@ using PixiEditor.Models.IO;
 using PixiEditor.Views.Dialogs;
 using PixiEditor.Views.Dialogs;
 using Color = PixiEditor.DrawingApi.Core.ColorsImpl.Color;
 using Color = PixiEditor.DrawingApi.Core.ColorsImpl.Color;
 using Colors = PixiEditor.DrawingApi.Core.ColorsImpl.Colors;
 using Colors = PixiEditor.DrawingApi.Core.ColorsImpl.Colors;
+using Command = PixiEditor.Models.Commands.Attributes.Commands.Command;
 
 
 namespace PixiEditor.ViewModels.SubViewModels.Main;
 namespace PixiEditor.ViewModels.SubViewModels.Main;
 
 
@@ -319,6 +320,12 @@ internal class ColorsViewModel : SubViewModel<ViewModelMain>
         PrimaryColor = color;
         PrimaryColor = color;
     }
     }
 
 
+    [Command.Internal("PixiEditor.CloseContextMenu")]
+    public void CloseContextMenu(System.Windows.Controls.ContextMenu menu)
+    {
+        menu.IsOpen = false;
+    }
+
     public void SetupPaletteParsers(IServiceProvider services)
     public void SetupPaletteParsers(IServiceProvider services)
     {
     {
         PaletteParsers = new WpfObservableRangeCollection<PaletteFileParser>(services.GetServices<PaletteFileParser>());
         PaletteParsers = new WpfObservableRangeCollection<PaletteFileParser>(services.GetServices<PaletteFileParser>());

+ 6 - 0
src/PixiEditor/Views/MainWindow.xaml

@@ -650,6 +650,12 @@
                                                                                                     Command="{cmds:Command PixiEditor.Colors.SelectColor, UseProvided=True}"
                                                                                                     Command="{cmds:Command PixiEditor.Colors.SelectColor, UseProvided=True}"
                                                                                                     CommandParameter="{Binding}" />
                                                                                                     CommandParameter="{Binding}" />
                                                                                             </b:EventTrigger>
                                                                                             </b:EventTrigger>
+                                                                                            <b:EventTrigger EventName="MouseLeftButtonUp">
+                                                                                                <b:InvokeCommandAction
+                                                                                                    Command="{cmds:Command PixiEditor.CloseContextMenu, UseProvided=True}"
+                                                                                                    CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor,
+                                                                                                     AncestorType={x:Type ContextMenu}}}" />
+                                                                                            </b:EventTrigger>
                                                                                         </b:Interaction.Triggers>
                                                                                         </b:Interaction.Triggers>
                                                                                     </palettes:PaletteColor>
                                                                                     </palettes:PaletteColor>
                                                                                 </DataTemplate>
                                                                                 </DataTemplate>