private void ChangeDiagramForNewStyle(DiagramMode newDiagramMode)
        {
            DiagramMode     = newDiagramMode;
            AllSeriesUnited = new DiagramDataSeriesUnited(AllDiagramData);
            AllSeriesUnited.StackAllData(newDiagramMode, GroupInterval);

            ExtractDataBetweenLimits();
            DiagramDataExtremums = CurrentSeriesUnited.FindDataExtremums(DiagramMode);
            Draw();
        }
        private void ChangeDiagramForNewGrouping(Every groupPeriod)
        {
            GroupInterval   = groupPeriod;
            AllSeriesUnited = new DiagramDataSeriesUnited(AllDiagramData);
            AllSeriesUnited.GroupAllData(groupPeriod, DiagramMode);

            if (groupPeriod == Every.Year)
            {
                DefineYearsLimits();
            }
            else
            {
                DiagramDataExtremums.MaxDate = new DateTime(DiagramDataExtremums.MaxDate.Year, 12, 31);
            }

            ExtractDataBetweenLimits();
            DiagramDataExtremums = CurrentSeriesUnited.FindDataExtremums(DiagramMode);
            Draw();
        }
        void BarDiagramControlOnLoaded(object sender, RoutedEventArgs e)
        {
            // набор серий надо преобразовать в структуру,
            // где одной дате соответствуют значения для разных серий
            AllSeriesUnited = new DiagramDataSeriesUnited(AllDiagramData);
            if (AllSeriesUnited.SeriesCount == 0)
            {
                return;
            }
            GroupInterval = AllDiagramData.TimeInterval;
            DiagramMode   = AllDiagramData.Mode;

            CurrentSeriesUnited      = new DiagramDataSeriesUnited(AllSeriesUnited);
            DiagramDataExtremums     = CurrentSeriesUnited.FindDataExtremums(DiagramMode);
            _diagramDrawer           = new DiagramDrawer();
            _diagramDataPanAndZoomer = new DiagramDataPanAndZoomer();
            Draw();
            var window = Window.GetWindow(this);

            if (window != null)
            {
                window.KeyDown += OnKeyDown;
            }

//      var diagramLegendCreator = new DiagramLegendCreator(AllDiagramData);
//      LegendImage.Source = diagramLegendCreator.Create();



            DiagramLegend = new ObservableCollection <DiagramLegendItem>();
            foreach (var series in AllDiagramData.Series)
            {
                DiagramLegend.Add(new DiagramLegendItem()
                {
                    SeriesName = series.Name, FontColor = series.PositiveBrushColor
                });
            }
            Legend.ItemsSource = DiagramLegend;

            StatusBar.Text = "Ctrl+LeftButton - сдвиг изображения; LeftButton - зум прямоугольника";
        }