155 lines
7.1 KiB
C#
155 lines
7.1 KiB
C#
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; }
|
||
//}
|
||
}
|