Beispiel #1
0
        public void Dispose()
        {
            if (!isDisposed)
            {
                drawer = null;
                if (settings.HandleSizeChanged)
                {
                    canvas.SizeChanged -= Canvas_SizeChanged;
                }

                canvas.MouseWheel -= Canvas_MouseWheel;
                canvas.MouseMove  -= Canvas_MouseMove;
                canvas.MouseUp    -= Canvas_MouseUp;
                canvas.MouseDown  -= Canvas_MouseDown;
                canvas.Children.Clear();
                if (xZoomEnabled)
                {
                    horizScrollBar.ValueChanged -= HorizScrollBar_ValueChanged;
                }

                if (yZoomEnabled)
                {
                    vertScrollBar.ValueChanged -= VertScrollBar_ValueChanged;
                }

                isDisposed = true;
            }
        }
        /// <summary>
        /// Init method
        /// </summary>
        /// <param name="canvas">Canvas object</param>
        /// <param name="horizScrollBar">Horizontal ScrollBar object</param>
        /// <param name="vertScrollBar">Verical ScrollBar object. Can be null - that means vertical scroll is disabled</param>
        /// <param name="drawer">ICustomChartCanvasDrawer implementator. This object will implement actual chart drawing(lines, etc)</param>
        /// <param name="settings">WPFCanvasChartSettings instance - settings for chart</param>
        /// <param name="xAxisInterpolator">value interpolator for x axis</param>
        /// <param name="yAxisInterpolator">value interpolator for y axis</param>
        public void Init(Canvas canvas, IWPFCanvasChartDrawer drawer,
                         WPFCanvasChartSettings settings, IWPFCanvasChartInterpolator xAxisInterpolator, IWPFCanvasChartInterpolator yAxisInterpolator)
        {
            this.canvas            = canvas;
            this.drawer            = drawer;
            this.settings          = settings;
            this.yZoomEnabled      = vertScrollBar != null;
            this.xZoomEnabled      = horizScrollBar != null;
            this.xAxisInterpolator = xAxisInterpolator;
            this.yAxisInterpolator = yAxisInterpolator;

            chartHost.Drawing.Transform = chartTransform;

            canvas.Children.Add(axisHost);
            canvas.Children.Add(xyAxisValuesHost);
            canvas.Children.Add(chartHost);

            UpdateHostsSizes();
            InitCanvasHandlers();
            this.isDisposed = false;
        }