using Panuon.WPF.UI; using System.Windows; using Panuon.WPF.UI.Configurations; using System.Windows.Threading; namespace HMI.UI.Util { public class MsgBoxHelper { #region Warn public static MessageBoxResult WarnMessage(Window owner, string message, string caption = "警告", MessageBoxButton button = MessageBoxButton.OKCancel, MessageBoxIcon icon = MessageBoxIcon.Warning, DefaultButton defaultButton = DefaultButton.Unset, int? countdown = null) { var setting = Application.Current.FindResource("MsgBoxWarn") as MessageBoxXSetting; return ShowMessage(owner, message, caption, button, icon, defaultButton, setting, countdown); } #endregion #region Error public static MessageBoxResult ErrorMessage(DependencyObject owner, string message, string caption = "错误", MessageBoxButton button = MessageBoxButton.OKCancel, MessageBoxIcon icon = MessageBoxIcon.Error, DefaultButton defaultButton = DefaultButton.Unset, int? countdown = null) { 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 = "错误", MessageBoxButton button = MessageBoxButton.OK, MessageBoxIcon icon = MessageBoxIcon.Error, DefaultButton defaultButton = DefaultButton.Unset, int? countdown = null) { 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, string message, string caption = "提示", MessageBoxButton button = MessageBoxButton.OKCancel, MessageBoxIcon icon = MessageBoxIcon.Info, DefaultButton defaultButton = DefaultButton.Unset, int? countdown = null) { var setting = Application.Current.FindResource("MsgBoxInfo") as MessageBoxXSetting; return ShowMessage(owner, message, caption, button, icon, defaultButton, setting, countdown); } #endregion public static MessageBoxResult ShowMessage(DependencyObject owner, string message, string caption, MessageBoxButton button, MessageBoxIcon icon, DefaultButton defaultButton, MessageBoxXSetting setting, int? countdown) { MessageBoxResult res = MessageBoxResult.None; Application.Current.Dispatcher.Invoke(() => { if (owner is Window window) { res = MessageBoxX.Show(window, message, caption, button, icon, defaultButton, setting, countdown); } else { window = Window.GetWindow(owner); res = MessageBoxX.Show(window, message, caption, button, icon, defaultButton, setting, countdown); } }); return res; } } }