alielie
2025-10-10 15bbd62b0b24b72c717ae91ab45348a2083ad04e
WPFProject/PanuonWindow.xaml.cs
@@ -6,18 +6,30 @@
using HMI.UI.Util;
using Panuon.WPF.UI;
using System;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.IO;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media.Imaging;
namespace WPFProject
{
    public class SimpleAlarm
    {
        public string Time { get; set; }
        public string Message { get; set; }
        public override string ToString()
        {
            return $"{Time} {Message}";
        }
    }
    /// <summary>
    /// PanuonWindow.xaml 的交互逻辑
    /// </summary>
    public partial class PanuonWindow : WindowX, IPluginContainer
    public partial class PanuonWindow : WindowX, IPluginContainer,IAlarmShow
    {
        public PanuonWindow()
        {
@@ -34,12 +46,45 @@
            }
        }
        private string welcomeTitle;
        public string WelcomeTitle
        {
            get => welcomeTitle;
            set
            {
                Set(ref welcomeTitle, value);
            }
        }
        private ObservableCollection<SimpleAlarm> alarms = new ObservableCollection<SimpleAlarm>();
        public ObservableCollection<SimpleAlarm> Alarms
        {
            get => alarms;
            set
            {
                Set(ref alarms, value);
            }
        }
        public int AlarmCount
        {
            get => Alarms?.Count ?? 0;
        }
        public ListBox sb {
            get;set;
        }
        private void PanuonWindow_Loaded(object sender, RoutedEventArgs e)
        {
            DataContext = this;
            RefrshConfig();
            InitializeComponent();
            userMenu.Header = this.lang("App.Welcome", UserInfo.User.Name);
            AlarmShowHelper.Register(this);
            var sb = WindowXCaption.GetHeaderTemplate(this);
            //sb.FindName("list",this.Con);
            WelcomeTitle = this.lang("App.Welcome", UserInfo.User.Name);
            ShowMenu = false;
            Application.Current.MainWindow = this;
            SystemSetting.SystemSettingChanged += SystemSetting_SystemSettingChanged;
@@ -188,6 +233,32 @@
            }
        }
        public bool ShowAlarm(string message)
        {
            bool res = false;
            Dispatcher.Invoke(() =>
            {
                if (Alarms.FirstOrDefault(e => e.Message == message) == null)
                {
                    var data = new SimpleAlarm
                    {
                        Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                        Message = message
                    };
                    Alarms.Add(data);
                    sb?.ScrollIntoView(data);
                    res = true;
                }
            });
            return res;
        }
        private void list_Loaded(object sender, RoutedEventArgs e)
        {
            sb = sender as ListBox;
            sb.Loaded -= list_Loaded;
        }
        //private void BaseWindow_Loaded(object sender, RoutedEventArgs e)
        //{
        //    var s = (Style)this.Resources["WindowButton"];