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 System.Net;

using FLY.Thick.Base.Client;
using System.Windows.Forms.DataVisualization.Charting;
using System.Drawing;
using Unity;
using FLY.Thick.Base.IService;
using System.ComponentModel;
using Misc;
using GalaSoft.MvvmLight.Command;
using FLY.Thick.Base.Server;

namespace FLY.Thick.Base.UI
{
    /// <summary>
    /// Page_BorderSearch.xaml 的交互逻辑
    /// </summary>
    public partial class PgBorderSearchPlastic : Page
    {
        PgBorderSearchVm viewModel;

        public PgBorderSearchPlastic()
        {
            InitializeComponent();
            InitializeChart();
        }
        void InitializeChart()
        {
            System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
            System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend();
            System.Windows.Forms.DataVisualization.Charting.Series series_datas = new System.Windows.Forms.DataVisualization.Charting.Series();
            System.Windows.Forms.DataVisualization.Charting.Series series_border_forw = new System.Windows.Forms.DataVisualization.Charting.Series();
            System.Windows.Forms.DataVisualization.Charting.Series series_border_backw = new System.Windows.Forms.DataVisualization.Charting.Series();

            // 
            // chart1
            // 
            //this.chart1.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(211)), ((System.Byte)(223)), ((System.Byte)(240)));
            //this.chart1.BackSecondaryColor = System.Drawing.Color.White;
            //this.chart1.BackGradientStyle = System.Windows.Forms.DataVisualization.Charting.GradientStyle.TopBottom;
            //this.chart1.BorderlineColor = System.Drawing.Color.FromArgb(((System.Byte)(26)), ((System.Byte)(59)), ((System.Byte)(105)));
            //this.chart1.BorderlineDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Solid;
            //this.chart1.BorderlineWidth = 2;
            //this.chart1.BorderSkin.SkinStyle = System.Windows.Forms.DataVisualization.Charting.BorderSkinStyle.Emboss;
            #region chartArea
            #region chartArea1

            chartArea1.Name = "chartArea1";

            chartArea1.AxisX.IsLabelAutoFit = false;
            chartArea1.AxisX.LabelStyle.Font = new System.Drawing.Font("Trebuchet MS", 8.25F, System.Drawing.FontStyle.Bold);
            //chartArea1.AxisX.LabelStyle.IsEndLabelVisible = false;
            chartArea1.AxisX.LineColor = System.Drawing.Color.FromArgb(((System.Byte)(64)), ((System.Byte)(64)), ((System.Byte)(64)), ((System.Byte)(64)));
            chartArea1.AxisX.MajorGrid.LineColor = System.Drawing.Color.FromArgb(((System.Byte)(64)), ((System.Byte)(64)), ((System.Byte)(64)), ((System.Byte)(64)));
            chartArea1.AxisX.Title = "位置(脉冲)";

            chartArea1.AxisY.IsLabelAutoFit = false;
            chartArea1.AxisY.LabelStyle.Font = new System.Drawing.Font("Trebuchet MS", 8.25F, System.Drawing.FontStyle.Bold);
            chartArea1.AxisY.LineColor = System.Drawing.Color.FromArgb(((System.Byte)(64)), ((System.Byte)(64)), ((System.Byte)(64)), ((System.Byte)(64)));
            chartArea1.AxisY.MajorGrid.LineColor = System.Drawing.Color.FromArgb(((System.Byte)(64)), ((System.Byte)(64)), ((System.Byte)(64)), ((System.Byte)(64)));
            chartArea1.AxisY.Title = "AD值";
            //chartArea1.AxisY.IsStartedFromZero = false;

            chartArea1.BackColor = System.Drawing.Color.FromArgb(((System.Byte)(64)), ((System.Byte)(165)), ((System.Byte)(191)), ((System.Byte)(228)));
            chartArea1.BackSecondaryColor = System.Drawing.Color.White;
            chartArea1.BackGradientStyle = System.Windows.Forms.DataVisualization.Charting.GradientStyle.TopBottom;
            chartArea1.BorderColor = System.Drawing.Color.FromArgb(((System.Byte)(64)), ((System.Byte)(64)), ((System.Byte)(64)), ((System.Byte)(64)));
            chartArea1.BorderDashStyle = System.Windows.Forms.DataVisualization.Charting.ChartDashStyle.Solid;

            chartArea1.CursorX.IsUserEnabled = true;
            chartArea1.CursorX.IsUserSelectionEnabled = true;
            chartArea1.CursorX.SelectionColor = System.Drawing.SystemColors.Highlight;

            chartArea1.CursorY.IsUserEnabled = true;
            chartArea1.CursorY.IsUserSelectionEnabled = true;
            chartArea1.CursorY.SelectionColor = System.Drawing.SystemColors.Highlight;
            
            chartArea1.Position.Auto = true;
            chartArea1.ShadowColor = System.Drawing.Color.Transparent;

            #endregion

            this.chart1.ChartAreas.Add(chartArea1);
            #endregion

            #region legend
            legend1.Name = "legend1";

            legend1.Docking = System.Windows.Forms.DataVisualization.Charting.Docking.Right;
            legend1.Alignment = System.Drawing.StringAlignment.Far;
            legend1.LegendStyle = LegendStyle.Column;
            legend1.IsDockedInsideChartArea = true;
            legend1.DockedToChartArea = chartArea1.Name;

            legend1.IsTextAutoFit = false;
            legend1.BackColor = System.Drawing.Color.Transparent;
            legend1.Font = new System.Drawing.Font("Trebuchet MS", 8.25F, System.Drawing.FontStyle.Bold);
            legend1.Position.Auto = true;
            chart1.Legends.Add(legend1);
            #endregion

            #region series
            series_datas.Name = "series_datas";
            series_datas.BorderColor = System.Drawing.Color.FromArgb(((System.Byte)(180)), ((System.Byte)(26)), ((System.Byte)(59)), ((System.Byte)(105)));
            series_datas.BorderWidth = 2;
            series_datas.ChartArea = chartArea1.Name;
            series_datas.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
            series_datas.Color = System.Drawing.Color.FromArgb(((int)(((byte)(220)))), ((int)(((byte)(65)))), ((int)(((byte)(140)))), ((int)(((byte)(240)))));
            
            series_datas.LegendText = "AD数据";
            series_datas.IsVisibleInLegend = true;
            series_datas.XValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Int32;
            series_datas.YValueType = System.Windows.Forms.DataVisualization.Charting.ChartValueType.Int32;

            series_datas.ShadowColor = System.Drawing.Color.Black;
            series_datas.ShadowOffset = 2;


            series_border_forw.Name = "series_border_forw";
            series_border_forw.LegendText = "正向边界点";
            series_border_forw.ChartArea = chartArea1.Name;
            series_border_forw.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
            series_border_forw.Color = System.Drawing.Color.Green;
            series_border_forw.BorderColor = System.Drawing.Color.DarkGreen;
            series_border_forw.BorderWidth = 3;

            series_border_forw.MarkerSize = 6;
            series_border_forw.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
            series_border_forw.MarkerBorderColor = System.Drawing.Color.DarkGreen;
            series_border_forw.MarkerColor = System.Drawing.Color.Green;

            series_border_forw.ShadowColor = System.Drawing.Color.Black;
            series_border_forw.ShadowOffset = 2;


            series_border_backw.Name = "series_border_backw";
            series_border_backw.LegendText = "反向边界点";
            series_border_backw.ChartArea = chartArea1.Name;
            series_border_backw.ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Point;
            series_border_backw.Color = System.Drawing.Color.Orange;
            series_border_backw.BorderColor = System.Drawing.Color.DarkOrange;
            series_border_backw.BorderWidth = 3;

            series_border_backw.MarkerSize = 6;
            series_border_backw.MarkerStyle = System.Windows.Forms.DataVisualization.Charting.MarkerStyle.Circle;
            series_border_backw.MarkerBorderColor = System.Drawing.Color.Orange;
            series_border_backw.MarkerColor = System.Drawing.Color.DarkOrange;

            series_border_backw.ShadowColor = System.Drawing.Color.Black;
            series_border_backw.ShadowOffset = 2;


            chart1.Series.Add(series_datas);
            chart1.Series.Add(series_border_forw);
            chart1.Series.Add(series_border_backw);
            #endregion

            chart1.Name = "chart1";
            chart1.Palette = System.Windows.Forms.DataVisualization.Charting.ChartColorPalette.BrightPastel;
            //chart1.Location = new System.Drawing.Point(0, 0);

            //chart1.PrePaint += Chart1_PrePaint;
        }

        [InjectionMethod]
        public void Init(IBorderSearchService borderSearchService, IInitParamService initParamService, ITDGageService gageService) 
        {
            viewModel = new PgBorderSearchVm();
            viewModel.Init(borderSearchService, initParamService, gageService, chart1);

            this.DataContext = viewModel;
        }
    }


}
