Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

61 řádky
1.5 KiB

  1. using System.Windows;
  2. namespace BPA.UIControl
  3. {
  4. /// <summary>
  5. /// MessageWindow.xaml 的交互逻辑
  6. /// </summary>
  7. public partial class MessageWindow : Window
  8. {
  9. /// <summary>
  10. /// 单例消息窗体
  11. /// </summary>
  12. private static MessageWindow messageWindow = null;
  13. private MessageWindow()
  14. {
  15. InitializeComponent();
  16. Application.Current.MainWindow.Closed += (sender, e) =>
  17. {
  18. Close();
  19. };
  20. }
  21. /// <summary>
  22. /// 获取实例
  23. /// </summary>
  24. /// <returns>MessageWindow 实例</returns>
  25. public static MessageWindow GetInstance()
  26. {
  27. if (messageWindow is null || !messageWindow.IsLoaded)
  28. {
  29. messageWindow = new MessageWindow();
  30. }
  31. return messageWindow;
  32. }
  33. /// <summary>
  34. /// 添加消息卡片
  35. /// </summary>
  36. /// <param name="messageCard">消息卡片</param>
  37. internal void AddMessageCard(MessageCard messageCard)
  38. {
  39. messageStackPanel.Children.Add(messageCard);
  40. }
  41. /// <summary>
  42. /// 移除消息卡片
  43. /// </summary>
  44. /// <param name="messageCard">消息卡片</param>
  45. internal void RemoveMessageCard(MessageCard messageCard)
  46. {
  47. messageStackPanel.Children.Remove(messageCard);
  48. if (messageStackPanel.Children.Count == 0)
  49. {
  50. Close();
  51. }
  52. }
  53. }
  54. }