alielie
2025-06-12 c1c3772a11b1f3fbad8846cc714120771d85fa53
HMI.UI/Util/MsgBoxHelper.cs
@@ -1,19 +1,21 @@
using Panuon.WPF.UI;
using System.Windows;
using Panuon.WPF.UI.Configurations;
using HMI.Core.Util;
namespace HMI.UI.Util
{
    public class MsgBoxHelper
    {
        #region Warn
        public static MessageBoxResult WarnMessage(Window owner,
        public static MessageBoxResult WarnMessage(DependencyObject owner,
            string message,
            string caption = "警告",
            string caption = null,
            MessageBoxButton button = MessageBoxButton.OKCancel,
            MessageBoxIcon icon = MessageBoxIcon.Warning,
            DefaultButton defaultButton = DefaultButton.Unset, int? countdown = null)
        {
            caption = caption ?? LangUtil.Get("App.Warn");
            var setting = Application.Current.FindResource("MsgBoxWarn") as MessageBoxXSetting;
            return ShowMessage(owner, message, caption, button, icon, defaultButton, setting, countdown);
        }
@@ -22,35 +24,38 @@
        #region Error
        public static MessageBoxResult ErrorMessage(DependencyObject owner,
            string message,
            string caption = "错误",
            string caption = null,
            MessageBoxButton button = MessageBoxButton.OKCancel,
            MessageBoxIcon icon = MessageBoxIcon.Error,
            DefaultButton defaultButton = DefaultButton.Unset, int? countdown = null)
        {
            caption = caption ?? LangUtil.Get("App.Error");
            var setting = Application.Current.FindResource("MsgBoxError") as MessageBoxXSetting;
            return ShowMessage(owner, message, caption, button, icon, defaultButton, setting, countdown);
        }
        public static MessageBoxResult Error(DependencyObject owner,
            string message,
            string caption = "错误",
            string caption = null,
            MessageBoxButton button = MessageBoxButton.OK,
            MessageBoxIcon icon = MessageBoxIcon.Error,
            DefaultButton defaultButton = DefaultButton.Unset, int? countdown = null)
        {
            caption = caption ?? LangUtil.Get("App.Error");
            var setting = Application.Current.FindResource("MsgBoxError") as MessageBoxXSetting;
            return ShowMessage(owner, message, caption, button, icon, defaultButton, setting, countdown);
        }
        #endregion
        #region Info
        public static MessageBoxResult InfoMessage(Window owner,
        public static MessageBoxResult InfoMessage(DependencyObject owner,
            string message,
            string caption = "提示",
            string caption = null,
            MessageBoxButton button = MessageBoxButton.OKCancel,
            MessageBoxIcon icon = MessageBoxIcon.Info,
            DefaultButton defaultButton = DefaultButton.Unset, int? countdown = null)
        {
            caption = caption ?? LangUtil.Get("App.Info");
            var setting = Application.Current.FindResource("MsgBoxInfo") as MessageBoxXSetting;
            return ShowMessage(owner, message, caption, button, icon, defaultButton, setting, countdown);
        }
@@ -66,12 +71,22 @@
            MessageBoxResult res = MessageBoxResult.None;
            if (!(owner is Window window))
            {
                window = Window.GetWindow(owner);
                owner.Dispatcher.Invoke(() =>
                {
                    window = Window.GetWindow(owner) ?? Application.Current.MainWindow;
                    window.Dispatcher.Invoke(() =>
                    {
                        res = MessageBoxX.Show(window, message, caption, button, icon, defaultButton, setting, countdown);
                    });
                });
            }
            window.Dispatcher.Invoke(() =>
            else
            {
                res = MessageBoxX.Show(window, message, caption, button, icon, defaultButton, setting, countdown);
            });
                window.Dispatcher.Invoke(() =>
                {
                    res = MessageBoxX.Show(window, message, caption, button, icon, defaultButton, setting, countdown);
                });
            }
            return res;
        }
    }