From 1afe548ac40cc7f975917ef9bf2e156595cf81f3 Mon Sep 17 00:00:00 2001
From: alielie <alielie@git.com>
Date: 星期四, 16 四月 2026 08:58:04 +0800
Subject: [PATCH] 优化;

---
 Plugin.TestResult/InfoWindow.xaml.cs |  139 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 137 insertions(+), 2 deletions(-)

diff --git a/Plugin.TestResult/InfoWindow.xaml.cs b/Plugin.TestResult/InfoWindow.xaml.cs
index 9c74852..1cb75b9 100644
--- a/Plugin.TestResult/InfoWindow.xaml.cs
+++ b/Plugin.TestResult/InfoWindow.xaml.cs
@@ -1,6 +1,11 @@
-锘縰sing Panuon.WPF.UI;
+锘縰sing HMI.Core.Util;
+using HMI.UI.Util;
+using Panuon.WPF.UI;
 using Plugin.TestResult_WPF.Model;
+using System;
 using System.Collections.ObjectModel;
+using System.Windows;
+using System.Windows.Controls;
 
 namespace Plugin.TestResult_WPF
 {
@@ -24,19 +29,149 @@
             get => _dataSource == null ? new ObservableCollection<Info>() : _dataSource;
             set => Set(ref _dataSource, value);
         }
+        private LiveChart waterChart;
+        private LiveChart electricChart;
+        private LiveChart vChart;
 
-        public InfoWindow(string title, ObservableCollection<Info> infos)
+        //public InfoWindow(string title, ObservableCollection<Info> infos, Chart waterChart, Chart electricChart, Chart vChart, int probeCount, int probeWarn)
+        //{
+        //    this.title = title;
+        //    this.dataSource = infos;
+        //    DataContext = this;
+        //    Topmost = false;
+        //    this.ProbeWarn = probeWarn;
+        //    InitializeComponent();
+
+
+        //    UpdateProbeCount(probeCount,probeWarn);
+
+        //    if (waterChart != null)
+        //    {
+        //        this.waterChart = waterChart;
+        //        mainGrid.Children.Add(waterChart);
+        //        Grid.SetRow(waterChart, 1);
+        //    }
+
+        //    this.electricChart = electricChart;
+        //    mainGrid.Children.Add(electricChart);
+        //    Grid.SetRow(electricChart, 2);
+
+
+        //    this.vChart = vChart;
+        //    mainGrid.Children.Add(vChart);
+        //    Grid.SetRow(vChart, 3);
+        //}
+
+        public InfoWindow(string title, ObservableCollection<Info> infos, LiveChart[] charts, int probeCount, int probeWarn)
         {
             this.title = title;
             this.dataSource = infos;
             DataContext = this;
             Topmost = false;
+            this.ProbeWarn = probeWarn;
             InitializeComponent();
+
+
+            UpdateProbeCount(probeCount, probeWarn);
+            int row = 1;
+            foreach (var chart in charts)
+            {
+                if (chart == null) return;
+                mainGrid.Children.Add(chart);
+                Grid.SetRow(chart, row++);
+            }
+
+            //if (waterChart != null)
+            //{
+            //    this.waterChart = waterChart;
+            //    mainGrid.Children.Add(waterChart);
+            //    Grid.SetRow(waterChart, 1);
+            //}
+
+            //this.electricChart = electricChart;
+            //mainGrid.Children.Add(electricChart);
+            //Grid.SetRow(electricChart, 2);
+
+            //this.vChart = vChart;
+            //mainGrid.Children.Add(vChart);
+            //Grid.SetRow(vChart, 3);
+        }
+
+        public event EventHandler ClearProbeCountEvent;
+
+        private int probeCount;
+        public int ProbeCount
+        {
+            get => probeCount;
+            set
+            {
+                Set(ref probeCount, value);
+            }
+        }
+
+        public int ProbeWarn
+        {
+            get;
+            set;
+        }
+
+        public void UpdateProbeCount(int count, int warn)
+        {
+            Dispatcher.Invoke(() =>
+            {
+                ProbeCount = count;
+                ProbeWarn = warn;
+
+                if (ProbeWarn < 0)
+                {
+                    alarmLabel.Visibility = Visibility.Collapsed;
+                    alarmValue.Visibility = Visibility.Collapsed;
+                }
+                else
+                {
+                    probeCountAlarm.Visibility = (ProbeCount >= ProbeWarn) ? Visibility.Visible : Visibility.Collapsed;
+                }
+            });
         }
 
         public void UpdateSource(ObservableCollection<Info> infos)
         {
             this.dataSource = infos;
         }
+
+        private void Window_Loaded(object sender, RoutedEventArgs e)
+        {
+            DataContext = this;
+        }
+
+        private void Window_Unloaded(object sender, RoutedEventArgs e)
+        {
+            DataContext = null;
+        }
+
+        protected override void OnClosed(EventArgs e)
+        {
+            waterChart = null;
+            electricChart = null;
+            vChart = null;
+            mainGrid.Children.Clear();
+            base.OnClosed(e);
+        }
+
+        private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
+        {
+            //if (electricChart != null)
+            //{
+            //    electricChart.Height = this.ActualHeight * 0.3;
+            //}
+        }
+
+        private void Button_Click(object sender, RoutedEventArgs e)
+        {
+            if (MsgBoxHelper.WarnMessage(this, this.lang("Ts.MakeSureToClearProbeCount")) == MessageBoxResult.OK)
+            {
+                ClearProbeCountEvent?.Invoke(this, null);
+            }
+        }
     }
 }

--
Gitblit v1.9.1