private static void OnRealtimeTemperatureCollectionChange(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            StepAreaAndLineChart owner = d as StepAreaAndLineChart;

            if (owner.PresettedSequence != null && owner.PresettedSequence.Count > 0 && e.NewValue != null)
            {
                ((CRealtimeTemperatureCollection)e.NewValue).TotalTime = owner.PresettedSequence.TotalTime;
            }
        }
        private static void OnPresettedSequenceChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            StepAreaAndLineChart owner = d as StepAreaAndLineChart;

            /*
             * 重新生成一个CTemperatureSequence对象,这个对象和传入的对象区别是:
             * 重新生成的CTemperatureSequence对象会在尾部多加一个Point,这个Point用来
             * 正确产生Step Series的最后一个横阶梯
             */

            CTemperatureSequence seq;

            if (e.NewValue == null)
            {
                seq = new CTemperatureSequence();
            }
            else
            {
                seq = ((CTemperatureSequence)e.NewValue).Clone() as CTemperatureSequence;
                if (seq.Count > 0)
                {
                    /* 这里在最后加入一个Point用来修正Step Chart的View */
                    CTemperatureSequenceKeyPoint point = seq[seq.Count - 1];
                    seq.Add(new CTemperatureSequenceKeyPoint()
                    {
                        HoldTime          = 0,
                        TargetTemperature = point.TargetTemperature
                    });
                }
            }
            owner._SeriesSequence.DataSource = seq;

            /* 更新实时温度曲线的描点间隔 */
            if (seq != null && seq.Count > 0 && owner.RealtimeTemperatureCollection != null)
            {
                owner.RealtimeTemperatureCollection.TotalTime = owner.PresettedSequence.TotalTime;
            }
        }
        private static void OnRealtimeTemperatureVisibleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            StepAreaAndLineChart _owner = d as StepAreaAndLineChart;

            _owner._SeriesRealtime.Visible = (bool)e.NewValue;
        }