PgBlowingExt.xaml.cs 2.95 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
using FLY.Thick.Base.IService;
using FLY.Thick.Blowing.IService;
using FLY.Thick.BlowingScan.IService;
using LiveCharts.Wpf;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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 Unity;

namespace FLY.Thick.BlowingScan.UI.Client
{
    /// <summary>
    /// PgBlowingExt.xaml 的交互逻辑
    /// </summary>
    public partial class PgBlowingExt : Page
    {
        PgBlowingExtVm viewModel;
        public PgBlowingExt()
        {
            InitializeComponent();
        }
        [InjectionMethod]
        public void Init(
            IBlowingService blowingScanService,
            IBlowingDetectService blowingDetectService,
            IBorderSearchService borderSearchService
            )
        {

            viewModel = new PgBlowingExtVm();

            viewModel.Init(
                (IBlowingScanService)blowingScanService,
                blowingDetectService,
                borderSearchService,
                this
                );
            this.DataContext = viewModel;

            this.viewModel.PropertyChanged += ViewModel_PropertyChanged;
        }

        private void ViewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
        {
            if (e.PropertyName == nameof(viewModel.LimitSections)) {
                updateLimitSections();
            }
        }

        void updateLimitSections() {

            List<SectionsCollection> sectionList = new List<SectionsCollection>();
            sectionList.Add(this.thickChart_xAxis.Sections);
            sectionList.Add(this.angleChart_xAxis.Sections);
            sectionList.Add(this.filmVelocityChart_xAxis.Sections);
            sectionList.Add(this.filmLength3DChart_xAxis.Sections);



            foreach (var sections in sectionList) {
                if (sections.Count() > 0)
                {
                    sections.Clear();
                }
                for (int i = 0; i < viewModel.LimitSections.Count(); i++)
                {
                    var axisSection = viewModel.LimitSections[i];
                    var axisSection2 = new AxisSection()
                    {
                        StrokeThickness = axisSection.StrokeThickness,
                        DataLabel = axisSection.DataLabel,
                        DisableAnimations = true,
                        DataLabelForeground = axisSection.DataLabelForeground.Clone(),
                        Opacity = axisSection.Opacity,
                        Stroke = axisSection.Stroke.Clone(),
                        Value = axisSection.Value
                    };
                    sections.Add(axisSection2);
                }
            }
        }
    }
}