Esempio n. 1
0
        public MainWindow()
        {
            InitializeComponent();
            this.AreGridEnabledButton.IsChecked = true;
            settings = new WPFCanvasChartSettings();
            settings.MaxXZoomStep = 200.0f;
            settings.MaxYZoomStep = 200.0f;
            pen.Freeze();
            brush.Freeze();
            this.Loaded += (sender, e) =>
            {
                // chart must created after all UI elements are loaded (canvas, scroll bars, etc...)
                settings.HandleSizeChanged = false;
                settings.FontSize          = 4;
                settings.PenForGrid        = new Pen((Brush) new BrushConverter().ConvertFromString("#66000000"), 0.3);
                settings.PenForAxis        = new Pen((Brush) new BrushConverter().ConvertFromString("#CC000000"), 0.5);
                xAxisInterpolator          = new WPFCanvasChartIntInterpolator();
                yAxisInterpolator          = new WPFCanvasChartFloatInterpolator();
                cc = new WPFCanvasChartComponent();
                cc.Init(this.Canvas, HorizScroll, VertScroll, this, settings, xAxisInterpolator, yAxisInterpolator);
                cc.SetMinMax(-5, 5, 10, 20);
                cc.DrawChart();
            };

            this.Closed += (sender, e) =>
            {
                cc.Dispose();
            };
        }
        /// <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;
        }