From 379cc47e47b3657b8c345713d45ce4fdc4188087 Mon Sep 17 00:00:00 2001 From: geht <2947093423@qq.com> Date: Thu, 14 May 2026 16:05:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=A1=8C=E9=9D=A2=E7=AB=AF?= =?UTF-8?q?=E6=8A=98=E5=8F=A0=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yy-admin-master/YY.Admin/Module/TabSource.cs | 16 +++++- .../ViewModels/MainWindowViewModel.cs | 44 ++++++++++++++ .../YY.Admin/Views/MainWindow.xaml | 57 ++++++++++++++++--- 3 files changed, 108 insertions(+), 9 deletions(-) diff --git a/yy-admin-master/YY.Admin/Module/TabSource.cs b/yy-admin-master/YY.Admin/Module/TabSource.cs index 264fba3..f5e4a0b 100644 --- a/yy-admin-master/YY.Admin/Module/TabSource.cs +++ b/yy-admin-master/YY.Admin/Module/TabSource.cs @@ -5,15 +5,27 @@ namespace YY.Admin.Module { public class TabSource : BindableBase { + private string? _name; + /// /// 名称 /// - public virtual string? Name { get; set; } + public virtual string? Name + { + get => _name; + set => SetProperty(ref _name, value); + } + + private string? _icon; /// /// 图标 /// - public virtual string? Icon { get; set; } + public virtual string? Icon + { + get => _icon; + set => SetProperty(ref _icon, value); + } /// /// 图标类型 diff --git a/yy-admin-master/YY.Admin/ViewModels/MainWindowViewModel.cs b/yy-admin-master/YY.Admin/ViewModels/MainWindowViewModel.cs index 14ae828..73c958d 100644 --- a/yy-admin-master/YY.Admin/ViewModels/MainWindowViewModel.cs +++ b/yy-admin-master/YY.Admin/ViewModels/MainWindowViewModel.cs @@ -165,6 +165,18 @@ namespace YY.Admin.ViewModels set => SetProperty(ref _isAppSettingsOpen, value); } + /// + /// 为 true 时隐藏左侧功能菜单树(次级侧栏) + /// + private bool _isMenuTreePanelCollapsed; + public bool IsMenuTreePanelCollapsed + { + get => _isMenuTreePanelCollapsed; + set => SetProperty(ref _isMenuTreePanelCollapsed, value); + } + + private NavItem? _menuTreeToggleNavItem; + private AppSettingsViewModel? _appSettingsViewModel; public AppSettingsViewModel? AppSettingsViewModel { get => _appSettingsViewModel; @@ -175,6 +187,7 @@ namespace YY.Admin.ViewModels public ICommand ResetAppSettingsCommand { get; } public ICommand OpenAppSettingsCommand { get; } public ICommand OpenServerSettingsCommand { get; } + public ICommand ToggleMenuTreePanelCommand { get; } #endregion @@ -212,6 +225,7 @@ namespace YY.Admin.ViewModels OpenAppSettingsCommand = new DelegateCommand(OpenAppSettings); ResetAppSettingsCommand = new DelegateCommand(ResetAppSettings); OpenServerSettingsCommand = new DelegateCommand(OpenServerSettings); + ToggleMenuTreePanelCommand = new DelegateCommand(ToggleMenuTreePanel); // 初始化Sidebar数据 InitNavItems(); @@ -300,6 +314,13 @@ namespace YY.Admin.ViewModels Name = "Tab区域", Command = new DelegateCommand(OnOpenOrActivateTab) }, + (_menuTreeToggleNavItem = new NavItem { + Icon = "ChevronDoubleLeft", + Name = "折叠菜单", + AlignBottom = true, + IsActive = false, + Command = ToggleMenuTreePanelCommand + }), new NavItem { Icon = "Server", Name = "服务器设置", @@ -678,6 +699,29 @@ namespace YY.Admin.ViewModels } } + /// + /// 折叠 / 展示左侧菜单树区域 + /// + private void ToggleMenuTreePanel() + { + IsMenuTreePanelCollapsed = !IsMenuTreePanelCollapsed; + if (_menuTreeToggleNavItem == null) + { + return; + } + + if (IsMenuTreePanelCollapsed) + { + _menuTreeToggleNavItem.Name = "展示菜单"; + _menuTreeToggleNavItem.Icon = "ChevronDoubleRight"; + } + else + { + _menuTreeToggleNavItem.Name = "折叠菜单"; + _menuTreeToggleNavItem.Icon = "ChevronDoubleLeft"; + } + } + private void OpenServerSettings() { _dialogService.ShowDialog("ServerSettingsDialog", r => diff --git a/yy-admin-master/YY.Admin/Views/MainWindow.xaml b/yy-admin-master/YY.Admin/Views/MainWindow.xaml index 8a4465d..bc3b839 100644 --- a/yy-admin-master/YY.Admin/Views/MainWindow.xaml +++ b/yy-admin-master/YY.Admin/Views/MainWindow.xaml @@ -145,12 +145,34 @@ - - + + + + + + + + + + @@ -159,6 +181,16 @@ BorderThickness="0,0,1,0" BorderBrush="{DynamicResource BorderBrush}" Background="{DynamicResource RegionBrush}"> + + + @@ -170,7 +202,18 @@ ShowsPreview="True" Cursor="SizeWE" Background="{DynamicResource RegionBrush}" - PreviewStyle="{StaticResource GridSplitterPreviewStyle}"/> + PreviewStyle="{StaticResource GridSplitterPreviewStyle}"> + + + +