Browse Source

Added Show Navigation Button

CPKreuz 4 years ago
parent
commit
7dd3859e95

+ 40 - 0
PixiEditor/ViewModels/SubViewModels/Main/WindowViewModel.cs

@@ -0,0 +1,40 @@
+using AvalonDock.Layout;
+using PixiEditor.Helpers;
+using System.Collections.Generic;
+using System.Linq;
+
+namespace PixiEditor.ViewModels.SubViewModels.Main
+{
+    public class WindowViewModel : SubViewModel<ViewModelMain>
+    {
+        public MainWindow MainWindow { get; private set; }
+
+        public RelayCommand ShowAvalonDockWindowCommand { get; set; }
+
+        public WindowViewModel(ViewModelMain owner)
+            : base(owner)
+        {
+            ShowAvalonDockWindowCommand = new RelayCommand(ShowAvalonDockWindow);
+
+            MainWindow = (MainWindow)System.Windows.Application.Current?.MainWindow;
+        }
+
+        private void ShowAvalonDockWindow(object parameter)
+        {
+            string id = (string)parameter;
+
+            var anchorables = new List<LayoutAnchorable>(MainWindow.LayoutRoot.Manager.Layout
+                    .Descendents()
+                    .OfType<LayoutAnchorable>());
+
+            foreach (var la in anchorables)
+            {
+                if (la.ContentId == id)
+                {
+                    la.Show();
+                    la.IsActive = true;
+                }
+            }
+        }
+    }
+}

+ 3 - 0
PixiEditor/ViewModels/ViewModelMain.cs

@@ -70,6 +70,8 @@ namespace PixiEditor.ViewModels
 
         public StylusViewModel StylusSubViewModel { get; set; }
 
+        public WindowViewModel WindowViewModel { get; set; }
+
         public IPreferences Preferences { get; set; }
 
         public bool IsDebug
@@ -112,6 +114,7 @@ namespace PixiEditor.ViewModels
             DocumentSubViewModel = new DocumentViewModel(this);
             DiscordViewModel = new DiscordViewModel(this, "764168193685979138");
             UpdateSubViewModel = new UpdateViewModel(this);
+            WindowViewModel = new WindowViewModel(this);
 
             StylusSubViewModel = services.GetService<StylusViewModel>();
             StylusSubViewModel?.SetOwner(this);

+ 2 - 0
PixiEditor/Views/MainWindow.xaml

@@ -136,6 +136,8 @@
                               IsCheckable="True" InputGestureText="Ctrl+`"/>
                     <MenuItem Header="_Open Startup Window" ToolTip="Hello there!"
                               Command="{Binding MiscSubViewModel.OpenHelloThereWindowCommand}"/>
+                    <MenuItem Header="_Open Navigation Window"
+                              Command="{Binding WindowViewModel.ShowAvalonDockWindowCommand}" CommandParameter="navigation"/>
                 </MenuItem>
                 <MenuItem Header="_Help">
                     <MenuItem Header="_Documentation" Command="{Binding MiscSubViewModel.OpenHyperlinkCommand}"