增强应用程序异常处理机制,新增未处理异常日志记录功能,确保在启动和运行期间捕获并记录异常信息。同时,重构配置文件加载逻辑,支持用户目录覆盖默认配置,优化 SQLite 数据库连接字符串处理,确保在不同环境下的兼容性和稳定性。
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
|
||||
using System.Windows;
|
||||
using System.Windows.Media;
|
||||
using Prism.Dialogs;
|
||||
using YY.Admin.ViewModels.Control;
|
||||
using YY.Admin.ViewModels.Dialogs;
|
||||
using YY.Admin.Views;
|
||||
@@ -20,6 +20,15 @@ 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>
|
||||
@@ -35,8 +44,9 @@ namespace YY.Admin
|
||||
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");
|
||||
@@ -103,6 +113,30 @@ namespace YY.Admin
|
||||
}
|
||||
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()
|
||||
|
||||
Reference in New Issue
Block a user