| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 | using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;using SciChart.Charting.Visuals.Axes;using Aitex.Core.Equipment.SusceptorDefine;using Aitex.Core.UI.View.Smart;using Aitex.Core.UI.ControlDataContext;namespace Aitex.Core.UI.Control{    /// <summary>    /// Interaction logic for PocketProcessDataChart.xaml    /// </summary>    public partial class LineDataChart : UserControl    {        public LineDataChart()        {            InitializeComponent();        }        private void sciChart_MouseDoubleClick(object sender, MouseButtonEventArgs e)        {            if (e.ChangedButton == MouseButton.Right)            {                //右键双击,恢复1:1的视图                this.sciChart.ZoomExtents();            }        }        private void NumericAxis_Pyro_MouseEnter(object sender, MouseEventArgs e)        {            pyroAxisTopDown.Visibility = System.Windows.Visibility.Visible;            pyroAxisTopUp.Visibility = System.Windows.Visibility.Visible;            pyroAxisBottomUp.Visibility = System.Windows.Visibility.Visible;            pyroAxisBottomDown.Visibility = System.Windows.Visibility.Visible;        }        private void NumericAxis_Pyro_MouseLeave(object sender, MouseEventArgs e)        {            if (pyroAxisTopDown.IsMouseOver || pyroAxisTopUp.IsMouseOver ||                pyroAxisBottomDown.IsMouseOver || pyroAxisBottomUp.IsMouseOver)                return;            pyroAxisTopDown.Visibility = System.Windows.Visibility.Hidden;            pyroAxisTopUp.Visibility = System.Windows.Visibility.Hidden;            pyroAxisBottomDown.Visibility = System.Windows.Visibility.Hidden;            pyroAxisBottomUp.Visibility = System.Windows.Visibility.Hidden;        }        private void NumericAxis_Wrap_MouseEnter(object sender, MouseEventArgs e)        {            warpAxisTopDown.Visibility = System.Windows.Visibility.Visible;            warpAxisTopUp.Visibility = System.Windows.Visibility.Visible;            warpAxisBottomUp.Visibility = System.Windows.Visibility.Visible;            warpAxisBottomDown.Visibility = System.Windows.Visibility.Visible;        }        private void NumericAxis_Wrap_MouseLeave(object sender, MouseEventArgs e)        {            if (warpAxisTopDown.IsMouseOver || warpAxisTopUp.IsMouseOver ||                warpAxisBottomDown.IsMouseOver || warpAxisBottomUp.IsMouseOver)                return;            warpAxisTopDown.Visibility = System.Windows.Visibility.Hidden;            warpAxisTopUp.Visibility = System.Windows.Visibility.Hidden;            warpAxisBottomDown.Visibility = System.Windows.Visibility.Hidden;            warpAxisBottomUp.Visibility = System.Windows.Visibility.Hidden;        }        private void NumericAxis_Reflect_MouseEnter(object sender, MouseEventArgs e)        {            ReflectAxisTopDown.Visibility = System.Windows.Visibility.Visible;            ReflectAxisTopUp.Visibility = System.Windows.Visibility.Visible;            ReflectAxisBottomUp.Visibility = System.Windows.Visibility.Visible;            ReflectAxisBottomDown.Visibility = System.Windows.Visibility.Visible;        }        private void NumericAxis_Reflect_MouseLeave(object sender, MouseEventArgs e)        {            if (ReflectAxisTopDown.IsMouseOver || ReflectAxisTopUp.IsMouseOver ||                ReflectAxisBottomDown.IsMouseOver || ReflectAxisBottomUp.IsMouseOver)                return;            ReflectAxisTopDown.Visibility = System.Windows.Visibility.Hidden;            ReflectAxisTopUp.Visibility = System.Windows.Visibility.Hidden;            ReflectAxisBottomDown.Visibility = System.Windows.Visibility.Hidden;            ReflectAxisBottomUp.Visibility = System.Windows.Visibility.Hidden;        }        private void YAxisTopUp_Click(object sender, MouseButtonEventArgs e)        {            var l = sender as Label;            NumericAxis axis = sciChart.YAxes[1 + int.Parse(l.Tag.ToString())] as NumericAxis;            double min = (double)axis.VisibleRange.Min;            double max = (double)axis.VisibleRange.Max;            axis.VisibleRange.Max = max + 0.1 * (max - min);        }        private void YAxisTopDown_Click(object sender, MouseButtonEventArgs e)        {            var l = sender as Label;            NumericAxis axis = sciChart.YAxes[1 + int.Parse(l.Tag.ToString())] as NumericAxis;            double min = (double)axis.VisibleRange.Min;            double max = (double)axis.VisibleRange.Max;            axis.VisibleRange.Max = max - 0.1 * (max - min);        }        private void YAxisBottomUp_Click(object sender, MouseButtonEventArgs e)        {            var l = sender as Label;            NumericAxis axis = sciChart.YAxes[1 + int.Parse(l.Tag.ToString())] as NumericAxis;            double min = (double)axis.VisibleRange.Min;            double max = (double)axis.VisibleRange.Max;            axis.VisibleRange.Min = min + 0.1 * (max - min);        }        private void YAxisBottomDown_Click(object sender, MouseButtonEventArgs e)        {            var l = sender as Label;            NumericAxis axis = sciChart.YAxes[1 + int.Parse(l.Tag.ToString())] as NumericAxis;            double min = (double)axis.VisibleRange.Min;            double max = (double)axis.VisibleRange.Max;            axis.VisibleRange.Min = min - 0.1 * (max - min);        }        private void checkAutoRange_Checked(object sender, RoutedEventArgs e)        {            CheckBox ck = sender as CheckBox;            AutoRange value = ck.IsChecked.Value ? AutoRange.Always : AutoRange.Never;            sciChart.XAxis.AutoRange = value;            foreach (var yaxis in sciChart.YAxes)                yaxis.AutoRange = value;        }        private void OnChangeLineColor(object sender, RoutedEventArgs e)        {            var btn = (Button)sender;            if (btn != null)            {                string dataId = (string)btn.Tag;                var dlg = new System.Windows.Forms.ColorDialog();                if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)                {                    var newColor = new System.Windows.Media.Color() { A = dlg.Color.A, B = dlg.Color.B, G = dlg.Color.G, R = dlg.Color.R };                    var vm = (ProcessDataChartDataItem)DataContext;                    var line = vm.RenderableSeries.ToList().Find((o) => ((SmartDataLine)o).UniqueId == dataId);                    if (line != null) line.Stroke = newColor;                }            }        }        private void OnChangeDrawingItemVisibility(object sender, RoutedEventArgs e)        {            var checkbox = (CheckBox)sender;            if (checkbox != null && checkbox.IsChecked.HasValue)            {                string dataId = (string)checkbox.Tag;                var vm = (ProcessDataChartDataItem)DataContext;                var line = vm.RenderableSeries.ToList().Find((o) => ((SmartDataLine)o).UniqueId == dataId);                if (line != null)                {                    line.IsVisible = checkbox.IsChecked.Value;                    //vm.InvokePropertyChanged("ReflectionDataSeries");                }            }        }        private void checkConfigPanel_Checked(object sender, RoutedEventArgs e)        {            dataConfigPanelColumn.Width = new GridLength((sender as CheckBox).IsChecked.Value ? 300 : 0, GridUnitType.Pixel);        }    }}
 |