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(DependencyObject owner, string message, 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); } #endregion #region Error public static MessageBoxResult ErrorMessage(DependencyObject owner, string message, 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 = 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(DependencyObject owner, string message, 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); } #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; if (!(owner is Window window)) { window = Window.GetWindow(owner) ?? Application.Current.MainWindow; } window.Dispatcher.Invoke(() => { res = MessageBoxX.Show(window, message, caption, button, icon, defaultButton, setting, countdown); }); return res; } } }