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}">
+
+
+
+