优化桌面端折叠菜单
This commit is contained in:
@@ -5,15 +5,27 @@ namespace YY.Admin.Module
|
|||||||
{
|
{
|
||||||
public class TabSource : BindableBase
|
public class TabSource : BindableBase
|
||||||
{
|
{
|
||||||
|
private string? _name;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 名称
|
/// 名称
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public virtual string? Name { get; set; }
|
public virtual string? Name
|
||||||
|
{
|
||||||
|
get => _name;
|
||||||
|
set => SetProperty(ref _name, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private string? _icon;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 图标
|
/// 图标
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public virtual string? Icon { get; set; }
|
public virtual string? Icon
|
||||||
|
{
|
||||||
|
get => _icon;
|
||||||
|
set => SetProperty(ref _icon, value);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 图标类型
|
/// 图标类型
|
||||||
|
|||||||
@@ -165,6 +165,18 @@ namespace YY.Admin.ViewModels
|
|||||||
set => SetProperty(ref _isAppSettingsOpen, value);
|
set => SetProperty(ref _isAppSettingsOpen, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 为 true 时隐藏左侧功能菜单树(次级侧栏)
|
||||||
|
/// </summary>
|
||||||
|
private bool _isMenuTreePanelCollapsed;
|
||||||
|
public bool IsMenuTreePanelCollapsed
|
||||||
|
{
|
||||||
|
get => _isMenuTreePanelCollapsed;
|
||||||
|
set => SetProperty(ref _isMenuTreePanelCollapsed, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
private NavItem? _menuTreeToggleNavItem;
|
||||||
|
|
||||||
private AppSettingsViewModel? _appSettingsViewModel;
|
private AppSettingsViewModel? _appSettingsViewModel;
|
||||||
public AppSettingsViewModel? AppSettingsViewModel {
|
public AppSettingsViewModel? AppSettingsViewModel {
|
||||||
get => _appSettingsViewModel;
|
get => _appSettingsViewModel;
|
||||||
@@ -175,6 +187,7 @@ namespace YY.Admin.ViewModels
|
|||||||
public ICommand ResetAppSettingsCommand { get; }
|
public ICommand ResetAppSettingsCommand { get; }
|
||||||
public ICommand OpenAppSettingsCommand { get; }
|
public ICommand OpenAppSettingsCommand { get; }
|
||||||
public ICommand OpenServerSettingsCommand { get; }
|
public ICommand OpenServerSettingsCommand { get; }
|
||||||
|
public ICommand ToggleMenuTreePanelCommand { get; }
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@@ -212,6 +225,7 @@ namespace YY.Admin.ViewModels
|
|||||||
OpenAppSettingsCommand = new DelegateCommand(OpenAppSettings);
|
OpenAppSettingsCommand = new DelegateCommand(OpenAppSettings);
|
||||||
ResetAppSettingsCommand = new DelegateCommand(ResetAppSettings);
|
ResetAppSettingsCommand = new DelegateCommand(ResetAppSettings);
|
||||||
OpenServerSettingsCommand = new DelegateCommand(OpenServerSettings);
|
OpenServerSettingsCommand = new DelegateCommand(OpenServerSettings);
|
||||||
|
ToggleMenuTreePanelCommand = new DelegateCommand(ToggleMenuTreePanel);
|
||||||
|
|
||||||
// 初始化Sidebar数据
|
// 初始化Sidebar数据
|
||||||
InitNavItems();
|
InitNavItems();
|
||||||
@@ -300,6 +314,13 @@ namespace YY.Admin.ViewModels
|
|||||||
Name = "Tab区域",
|
Name = "Tab区域",
|
||||||
Command = new DelegateCommand<NavItem>(OnOpenOrActivateTab)
|
Command = new DelegateCommand<NavItem>(OnOpenOrActivateTab)
|
||||||
},
|
},
|
||||||
|
(_menuTreeToggleNavItem = new NavItem {
|
||||||
|
Icon = "ChevronDoubleLeft",
|
||||||
|
Name = "折叠菜单",
|
||||||
|
AlignBottom = true,
|
||||||
|
IsActive = false,
|
||||||
|
Command = ToggleMenuTreePanelCommand
|
||||||
|
}),
|
||||||
new NavItem {
|
new NavItem {
|
||||||
Icon = "Server",
|
Icon = "Server",
|
||||||
Name = "服务器设置",
|
Name = "服务器设置",
|
||||||
@@ -678,6 +699,29 @@ namespace YY.Admin.ViewModels
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 折叠 / 展示左侧菜单树区域
|
||||||
|
/// </summary>
|
||||||
|
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()
|
private void OpenServerSettings()
|
||||||
{
|
{
|
||||||
_dialogService.ShowDialog("ServerSettingsDialog", r =>
|
_dialogService.ShowDialog("ServerSettingsDialog", r =>
|
||||||
|
|||||||
@@ -145,12 +145,34 @@
|
|||||||
|
|
||||||
<Grid x:Name="MainContentGrid">
|
<Grid x:Name="MainContentGrid">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition
|
<ColumnDefinition x:Name="LeftMenuTreeCol">
|
||||||
x:Name="LeftMenuTreeCol"
|
<ColumnDefinition.Style>
|
||||||
Width="250"
|
<Style TargetType="ColumnDefinition">
|
||||||
MinWidth="50"
|
<Setter Property="Width" Value="250"/>
|
||||||
MaxWidth="{Binding ActualWidth, ElementName=MainContentGrid, Converter={StaticResource MaxWidthConverter}, ConverterParameter=50}"/>
|
<Setter Property="MinWidth" Value="50"/>
|
||||||
<ColumnDefinition Width="4"/>
|
<Setter Property="MaxWidth" Value="{Binding ActualWidth, ElementName=MainContentGrid, Converter={StaticResource MaxWidthConverter}, ConverterParameter=50}"/>
|
||||||
|
<Style.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding IsMenuTreePanelCollapsed}" Value="True">
|
||||||
|
<Setter Property="Width" Value="0"/>
|
||||||
|
<Setter Property="MinWidth" Value="0"/>
|
||||||
|
<Setter Property="MaxWidth" Value="0"/>
|
||||||
|
</DataTrigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
</ColumnDefinition.Style>
|
||||||
|
</ColumnDefinition>
|
||||||
|
<ColumnDefinition>
|
||||||
|
<ColumnDefinition.Style>
|
||||||
|
<Style TargetType="ColumnDefinition">
|
||||||
|
<Setter Property="Width" Value="4"/>
|
||||||
|
<Style.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding IsMenuTreePanelCollapsed}" Value="True">
|
||||||
|
<Setter Property="Width" Value="0"/>
|
||||||
|
</DataTrigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
</ColumnDefinition.Style>
|
||||||
|
</ColumnDefinition>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<!-- Sidebar侧边栏区域 -->
|
<!-- Sidebar侧边栏区域 -->
|
||||||
@@ -159,6 +181,16 @@
|
|||||||
BorderThickness="0,0,1,0"
|
BorderThickness="0,0,1,0"
|
||||||
BorderBrush="{DynamicResource BorderBrush}"
|
BorderBrush="{DynamicResource BorderBrush}"
|
||||||
Background="{DynamicResource RegionBrush}">
|
Background="{DynamicResource RegionBrush}">
|
||||||
|
<Border.Style>
|
||||||
|
<Style TargetType="Border">
|
||||||
|
<Setter Property="Visibility" Value="Visible"/>
|
||||||
|
<Style.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding IsMenuTreePanelCollapsed}" Value="True">
|
||||||
|
<Setter Property="Visibility" Value="Collapsed"/>
|
||||||
|
</DataTrigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
</Border.Style>
|
||||||
<ContentControl prism:RegionManager.RegionName="{x:Static consts:CommonConst.MenuRegion}"/>
|
<ContentControl prism:RegionManager.RegionName="{x:Static consts:CommonConst.MenuRegion}"/>
|
||||||
</Border>
|
</Border>
|
||||||
<!-- 拖拽分隔条 -->
|
<!-- 拖拽分隔条 -->
|
||||||
@@ -170,7 +202,18 @@
|
|||||||
ShowsPreview="True"
|
ShowsPreview="True"
|
||||||
Cursor="SizeWE"
|
Cursor="SizeWE"
|
||||||
Background="{DynamicResource RegionBrush}"
|
Background="{DynamicResource RegionBrush}"
|
||||||
PreviewStyle="{StaticResource GridSplitterPreviewStyle}"/>
|
PreviewStyle="{StaticResource GridSplitterPreviewStyle}">
|
||||||
|
<GridSplitter.Style>
|
||||||
|
<Style TargetType="GridSplitter">
|
||||||
|
<Setter Property="Visibility" Value="Visible"/>
|
||||||
|
<Style.Triggers>
|
||||||
|
<DataTrigger Binding="{Binding IsMenuTreePanelCollapsed}" Value="True">
|
||||||
|
<Setter Property="Visibility" Value="Collapsed"/>
|
||||||
|
</DataTrigger>
|
||||||
|
</Style.Triggers>
|
||||||
|
</Style>
|
||||||
|
</GridSplitter.Style>
|
||||||
|
</GridSplitter>
|
||||||
<!-- 主内容区域 -->
|
<!-- 主内容区域 -->
|
||||||
<Border
|
<Border
|
||||||
Grid.Column="2"
|
Grid.Column="2"
|
||||||
|
|||||||
Reference in New Issue
Block a user