MessageBox.cs 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. namespace System.Windows.Forms
  2. {
  3. public static class MessageBox
  4. {
  5. private static MessageBoxButton GetButton(MessageBoxButtons buttons)
  6. {
  7. return buttons switch
  8. {
  9. MessageBoxButtons.OKCancel => MessageBoxButton.OKCancel,
  10. MessageBoxButtons.YesNo => MessageBoxButton.YesNo,
  11. MessageBoxButtons.YesNoCancel => MessageBoxButton.YesNoCancel,
  12. _ => MessageBoxButton.OK
  13. };
  14. }
  15. private static MessageBoxImage GetIcon(MessageBoxIcon icon)
  16. {
  17. return icon switch
  18. {
  19. MessageBoxIcon.Information => MessageBoxImage.Information,
  20. MessageBoxIcon.Warning => MessageBoxImage.Warning,
  21. MessageBoxIcon.Error => MessageBoxImage.Error,
  22. MessageBoxIcon.Question => MessageBoxImage.Question,
  23. _ => MessageBoxImage.None
  24. };
  25. }
  26. private static DialogResult GetResult(MessageBoxResult result)
  27. {
  28. return result switch
  29. {
  30. MessageBoxResult.OK => DialogResult.OK,
  31. MessageBoxResult.Cancel => DialogResult.Cancel,
  32. MessageBoxResult.Yes => DialogResult.Yes,
  33. MessageBoxResult.No => DialogResult.No,
  34. _ => DialogResult.None
  35. };
  36. }
  37. public static DialogResult Show(string text) =>
  38. GetResult(System.Windows.MessageBox.Show(text));
  39. public static DialogResult Show(string text, string caption) =>
  40. GetResult(System.Windows.MessageBox.Show(text, caption));
  41. public static DialogResult Show(string text, string caption, MessageBoxButtons buttons) =>
  42. GetResult(System.Windows.MessageBox.Show(text, caption, GetButton(buttons)));
  43. public static DialogResult Show(string text, string caption, MessageBoxButtons buttons, MessageBoxIcon icon) =>
  44. GetResult(System.Windows.MessageBox.Show(text, caption, GetButton(buttons), GetIcon(icon)));
  45. }
  46. public enum MessageBoxButtons
  47. {
  48. OK,
  49. OKCancel,
  50. AbortRetryIgnore,
  51. YesNoCancel,
  52. YesNo,
  53. RetryCancel
  54. }
  55. public enum MessageBoxIcon
  56. {
  57. None = 0,
  58. Hand = 0x10,
  59. Question = 0x20,
  60. Exclamation = 48,
  61. Asterisk = 0x40,
  62. Stop = 0x10,
  63. Error = 0x10,
  64. Warning = 48,
  65. Information = 0x40
  66. }
  67. }