예제 #1
0
파일: Chart.cs 프로젝트: Egaros/MvvmChart
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();

            this.Part_SeriesCollectionControl = (SeriesCollectionControl)this.GetTemplateChild("Part_SeriesCollectionControl");
            if (this.Part_SeriesCollectionControl != null)
            {
                this.Part_SeriesCollectionControl.IsXAxisCategory = this.XAxis is ICategoryAxis;

                this.Part_SeriesCollectionControl.GlobalXValueRangeChanged += SeriesCollectionControlGlobalXValueRangeChanged;
                this.Part_SeriesCollectionControl.GlobalYValueRangeChanged += SeriesCollectionControlGlobalYValueRangeChanged;

                this.Part_SeriesCollectionControl.SetBinding(SeriesCollectionControl.SeriesTemplateProperty,
                                                             new Binding(nameof(this.SeriesTemplate))
                {
                    Source = this
                });
                this.Part_SeriesCollectionControl.SetBinding(SeriesCollectionControl.SeriesTemplateSelectorProperty,
                                                             new Binding(nameof(this.SeriesTemplateSelector))
                {
                    Source = this
                });
                this.Part_SeriesCollectionControl.SetBinding(SeriesCollectionControl.SeriesItemsSourceProperty,
                                                             new Binding(nameof(this.SeriesItemsSource))
                {
                    Source = this
                });

                this.Part_SeriesCollectionControl.StackMode = this.SeriesStackMode;

                OnIsChartUpdatingChanged();
            }


            this.PART_Root           = (Grid)GetTemplateChild(sPART_Root);
            this.PART_PlottingCanvas = (Grid)GetTemplateChild(sPART_PlottingCanvas);

            OnXAxisPropertyChanged(null, this.XAxis);
            OnYAxisPropertyChanged(null, this.YAxis);
            OnBackgroundImageChanged(null, this.BackgroundElement);

            this.PART_HorizontalCrossHair = (Line)GetTemplateChild(sPART_HorizontalCrossHair);
            if (this.PART_HorizontalCrossHair != null)
            {
                this.PART_HorizontalCrossHair.SetBinding(Control.StyleProperty,
                                                         new Binding(nameof(HorizontalCrossHairLineStyle))
                {
                    Source = this
                });
                this.PART_HorizontalCrossHair.SetBinding(Line.X2Property,
                                                         new Binding(nameof(ActualWidth))
                {
                    Source = this.PART_PlottingCanvas
                });
            }

            this.PART_VerticalCrossHair = (Line)GetTemplateChild(sPART_VerticalCrossHair);
            if (this.PART_VerticalCrossHair != null)
            {
                this.PART_VerticalCrossHair.SetBinding(Control.StyleProperty,
                                                       new Binding(nameof(VerticalCrossHairLineStyle))
                {
                    Source = this
                });
                this.PART_VerticalCrossHair.SetBinding(Line.Y2Property,
                                                       new Binding(nameof(ActualHeight))
                {
                    Source = this.PART_PlottingCanvas
                });
            }

            this.PART_GridLineHolder = (ContentControl)GetTemplateChild(sPART_GridLineHolder);


            OnGridLineControlChanged();

            this.PART_PlottingCanvas.MouseMove   += PlottingCanvasMouseMove;
            this.PART_PlottingCanvas.MouseLeave  += PlottingCanvasMouseLeave;
            this.PART_PlottingCanvas.SizeChanged += PartPlottingCanvasSizeChanged;

            this.PART_LegendHolder = (ContentControl)GetTemplateChild(sPART_LegendHolder);
            OnLegendChanged();
        }
예제 #2
0
        public override void OnApplyTemplate()
        {
            base.OnApplyTemplate();

            this.Part_SeriesCollectionControl = (SeriesCollectionControl)GetTemplateChild("Part_SeriesCollectionControl");
            if (this.Part_SeriesCollectionControl != null)
            {
                this.Part_SeriesCollectionControl.IsXAxisCategory = this.XAxis is ICategoryAxis;

                this.Part_SeriesCollectionControl.Owner = this;

                this.Part_SeriesCollectionControl.ActualXPlottingRangeChanged += SeriesCollectionControl_ActualXPlottingRangeChanged;
                this.Part_SeriesCollectionControl.ActualYPlottingRangeChanged += SeriesCollectionControl_ActualYPlottingRangeChanged;
            }


            this.PART_Root           = (Grid)GetTemplateChild(sPART_Root);
            this.PART_PlottingCanvas = (Grid)GetTemplateChild(sPART_PlottingCanvas);

            OnXAxisPropertyChanged(null, this.XAxis);
            OnYAxisPropertyChanged(null, this.YAxis);
            OnBackgroundImageChanged(null, this.BackgroundElement);

            this.PART_HorizontalCrossHair = (Line)GetTemplateChild(sPART_HorizontalCrossHair);
            if (this.PART_HorizontalCrossHair != null)
            {
                this.PART_HorizontalCrossHair.SetBinding(StyleProperty,
                                                         new Binding(nameof(this.HorizontalCrossHairLineStyle))
                {
                    Source = this
                });
                this.PART_HorizontalCrossHair.SetBinding(Line.X2Property,
                                                         new Binding(nameof(this.ActualWidth))
                {
                    Source = this.PART_PlottingCanvas
                });
            }

            this.PART_VerticalCrossHair = (Line)GetTemplateChild(sPART_VerticalCrossHair);
            if (this.PART_VerticalCrossHair != null)
            {
                this.PART_VerticalCrossHair.SetBinding(StyleProperty,
                                                       new Binding(nameof(this.VerticalCrossHairLineStyle))
                {
                    Source = this
                });
                this.PART_VerticalCrossHair.SetBinding(Line.Y2Property,
                                                       new Binding(nameof(this.ActualHeight))
                {
                    Source = this.PART_PlottingCanvas
                });
            }

            this.PART_GridLineHolder = (ContentControl)GetTemplateChild(sPART_GridLineHolder);


            OnGridLineControlChanged();

            this.PART_PlottingCanvas.MouseMove  += PlottingCanvasMouseMove;
            this.PART_PlottingCanvas.MouseLeave += PlottingCanvasMouseLeave;

            this.PART_LegendHolder = (ContentControl)GetTemplateChild(sPART_LegendHolder);
            OnLegendChanged();
        }