alielie
2025-10-10 15bbd62b0b24b72c717ae91ab45348a2083ad04e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
using HMI.Core.Util;
using Panuon.WPF.UI;
using Panuon.WPF.UI.Configurations;
using System.Windows;
 
namespace HMI.UI.Util
{
    public class MsgBoxHelper2
    {
        public static MessageBoxResult Warn(string message,
            string caption = null,
            MessageBoxButton button = MessageBoxButton.OK,
            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(message, caption, button, icon, defaultButton, setting, countdown);
        }
 
        public static MessageBoxResult Error(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(message, caption, button, icon, defaultButton, setting, countdown);
        }
 
        public static MessageBoxResult Info(string message,
            string caption = null,
            MessageBoxButton button = MessageBoxButton.OK,
            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(message, caption, button, icon, defaultButton, setting, countdown);
        }
 
        public static MessageBoxResult WarnChoose(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(message, caption, button, icon, defaultButton, setting, countdown);
        }
 
        public static MessageBoxResult ErrorChoose(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(message, caption, button, icon, defaultButton, setting, countdown);
        }
 
        public static MessageBoxResult InfoChoose(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(message, caption, button, icon, defaultButton, setting, countdown);
        }
 
        public static MessageBoxResult ShowMessage(string message,
            string caption,
            MessageBoxButton button,
            MessageBoxIcon icon,
            DefaultButton defaultButton, MessageBoxXSetting setting, int? countdown)
        {
            MessageBoxResult res = MessageBoxResult.None;
            var window = Application.Current.MainWindow;
            if (window is WindowX)
            {
                window.Dispatcher.Invoke(() =>
                {
                    res = MessageBoxX.Show(window, message, caption, button, icon, defaultButton, setting, countdown);
                });
                return res;
            }
            else
            {
                return MessageBox.Show(message, caption);
            }
        }
    }
}