Files
qhmes/yy-admin-master/YY.Admin/Module/NavigationExtensions.cs

155 lines
7.1 KiB
C#
Raw Normal View History

using System.Windows;
using System.Windows.Media;
using Prism.Dialogs;
using YY.Admin.ViewModels.Control;
using YY.Admin.ViewModels.Dialogs;
using YY.Admin.Views;
using YY.Admin.Views.Control;
using YY.Admin.Views.Dialogs;
using YY.Admin.Views.SysManage;
using YY.Admin.Views.Customer;
using YY.Admin.Views.Supplier;
using YY.Admin.Views.MixerMaterial;
using YY.Admin.ViewModels.Vehicle;
using YY.Admin.Views.Vehicle;
using YY.Admin.Views.WeightRecord;
using YY.Admin.Views.RawMaterialCard;
using YY.Admin.Views.WarehouseArea;
using YY.Admin.Views.RawMaterialEntry;
using YY.Admin.Views.Print;
namespace YY.Admin
{
/// <summary>
/// Prism DialogService 中 <see cref="KnownDialogParameters.WindowName"/> 使用的宿主窗口注册名。
/// </summary>
public static class DialogWindowNames
{
/// <summary>标准边框、可调整大小,且不使用 AllowsTransparency服务器设置等需改 WindowStyle 的对话框)。</summary>
public const string ChromeDialogWindow = "ChromeDialogWindow";
}
public static class NavigationExtensions
{
/// <summary>
/// 注册导航
/// </summary>
public static void AddNavigation(this IContainerRegistry containerRegistry)
{
// 注册对话框
containerRegistry.RegisterDialog<AlertDialogView, AlertDialogViewModel>("AlertDialog");
containerRegistry.RegisterDialog<SuccessDialogView, SuccessDialogViewModel>("SuccessDialog");
containerRegistry.RegisterDialog<ErrorDialogView, ErrorDialogViewModel>("ErrorDialog");
containerRegistry.RegisterDialog<WarningDialogView, WarningDialogViewModel>("WarningDialog");
containerRegistry.RegisterDialog<ConfirmDialogView, ConfirmDialogViewModel>("ConfirmDialog");
containerRegistry.RegisterDialog<ServerSettingsDialogView, ServerSettingsDialogViewModel>("ServerSettingsDialog");
// 默认透明无边框宿主;需调整 WindowStyle/AllowsTransparency 的对话框改用命名宿主 ChromeDialogWindow
containerRegistry.RegisterDialogWindow<DialogWindow>();
containerRegistry.RegisterDialogWindow<ChromeDialogWindow>(DialogWindowNames.ChromeDialogWindow);
// 注册导航
containerRegistry.RegisterForNavigation<DashboardView>("DashboardView");
// 404视图
containerRegistry.RegisterForNavigation<NotFoundView>("NotFoundView");
//containerRegistry.RegisterForNavigation<RoleManagementView>("RoleManagementView");
//containerRegistry.RegisterForNavigation<PermissionManagementView>("PermissionManagementView");
//containerRegistry.RegisterForNavigation<OrderManagementView>("OrderManagementView");
//containerRegistry.RegisterForNavigation<ProductManagementView>("ProductManagementView");
//containerRegistry.RegisterForNavigation<ReportView>("ReportView");
//containerRegistry.RegisterForNavigation<MonitorView>("MonitorView");
// 窗口注册
containerRegistry.Register<LoginWindow>();
containerRegistry.Register<MainWindow>();
// 注册视图(页面)
containerRegistry.RegisterForNavigation<MenuTreeView>();
containerRegistry.RegisterForNavigation<UserManagementView>();
containerRegistry.RegisterForNavigation<DataDictionaryManagementView>();
containerRegistry.RegisterForNavigation<CategoryDictionaryManagementView>();
containerRegistry.RegisterForNavigation<RoleManagementView>();
containerRegistry.RegisterForNavigation<TenantManagementView>();
containerRegistry.RegisterForNavigation<MenuManagementView>();
containerRegistry.RegisterForNavigation<LoginSettingsView>();
// 车辆管理
containerRegistry.RegisterForNavigation<VehicleListView>();
// 客户管理
containerRegistry.RegisterForNavigation<CustomerListView>();
// 供应商管理
containerRegistry.RegisterForNavigation<SupplierListView>();
// 磅单记录管理标准CRUD列表
containerRegistry.RegisterForNavigation<WeightRecordListView>();
// 地磅称重操作(大页面操作台)
containerRegistry.RegisterForNavigation<WeightRecordOperationView>();
// 密炼物料信息
containerRegistry.RegisterForNavigation<MixerMaterialListView>();
// 原料入场记录
containerRegistry.RegisterForNavigation<RawMaterialEntryListView>();
// 新增原料入场记录(独立页面)
containerRegistry.RegisterForNavigation<RawMaterialEntryOperationView>();
// 原材料卡片
containerRegistry.RegisterForNavigation<RawMaterialCardListView>();
// 库区管理
containerRegistry.RegisterForNavigation<WarehouseAreaListView>();
// 打印设置
containerRegistry.RegisterForNavigation<PrintSettingsView>();
// 打印模板列表
containerRegistry.RegisterForNavigation<PrintTemplateListView>();
// 业务打印绑定(只读缓存)
containerRegistry.RegisterForNavigation<PrintBizTemplateBindListView>();
}
}
public class DialogWindow : Window, IDialogWindow
{
public DialogWindow()
{
WindowStyle = WindowStyle.None;
AllowsTransparency = true;
Background = Brushes.Transparent; // 背景透明
WindowStartupLocation = WindowStartupLocation.CenterOwner;
SizeToContent = SizeToContent.WidthAndHeight;
ResizeMode = ResizeMode.NoResize;
}
public IDialogResult? Result { get; set; }
}
/// <summary>
/// 标准窗口边框宿主:从构造起即 AllowsTransparency=false避免窗口显示后再切换透明属性引发异常。
/// </summary>
public class ChromeDialogWindow : Window, IDialogWindow
{
public ChromeDialogWindow()
{
AllowsTransparency = false;
Background = SystemColors.WindowBrush;
WindowStyle = WindowStyle.SingleBorderWindow;
ResizeMode = ResizeMode.CanResizeWithGrip;
WindowStartupLocation = WindowStartupLocation.CenterOwner;
// 按内容测量客户区高度;勿将 Window.Height 设为与 UserControl 相同数值,
// 否则会与标题栏/边框抢高度导致底部按钮被裁切。
SizeToContent = SizeToContent.WidthAndHeight;
MinWidth = 520;
MinHeight = 360;
Title = "对话框";
}
public IDialogResult? Result { get; set; }
}
//public class DialogWindow : Window, IDialogWindow
//{
// public DialogWindow()
// {
// //InitializeComponent();
// // 去掉最大化最小化
// ResizeMode = ResizeMode.NoResize;
// // 去掉右上角系统按钮
// WindowStyle = WindowStyle.None;
// }
// public IDialogResult Result { get; set; }
//}
}