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

155 lines
7.1 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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; }
//}
}