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; }