/// <summary>
        ///     Is called to render the contents of this canvas.
        /// </summary>
        /// <param name="drawingContext"></param>
        protected override void OnRender(DrawingContext drawingContext)
        {
            base.OnRender(drawingContext);

            foreach (AbstractLineSeriesCanvas canvas in _seriesCanvasses)
            {
                canvas.OnRender(drawingContext);
            }

            if (XAxis != null && XAxis.LinePen != null)
            {
                foreach (var value in XAxis.GetLines(XRange, ActualWidth))
                {
                    var from = new Point(value, 0);
                    var to   = new Point(value, ActualHeight);
                    drawingContext.DrawLine(XAxis.LinePen, from, to);
                }
            }

            if (YAxis != null && YAxis.LinePen != null)
            {
                foreach (var value in YAxis.GetLines(YRange, ActualHeight))
                {
                    var from = new Point(0, ActualHeight - value);
                    var to   = new Point(ActualWidth, ActualHeight - value);
                    drawingContext.DrawLine(YAxis.LinePen, from, to);
                }
            }
        }