private void DrawVisuals() { if (_mainVisual != null) { _children.Remove(_mainVisual); } _mainVisual = new DrawingVisual(); _mainVisual.CacheMode = new BitmapCache(); var renderRect = GetChartRect(); var whileRect = new Rect(0, 0, Math.Round(ActualWidth), Math.Round(ActualHeight)); _mainVisual.Clip = new RectangleGeometry(whileRect); var dc = _mainVisual.RenderOpen(); CreateBackgroundVisual(dc, whileRect); if (_mainCollection != null) { var collRect = new Rect(renderRect.Left + 1, renderRect.Top + 1, renderRect.Width - 2, renderRect.Height - 2); _mainCollection.CalculatePosition(collRect); CreateYScaleVisual(dc, renderRect, renderRect.Right, _mainCollection); CreateXScaleVisual(dc, renderRect, renderRect.Bottom, _mainCollection); _mainCollection.Draw(dc); } CreateBorderVisual(dc); foreach (var assistColl in _assistCollections) { CreateCollectionVisual(dc, renderRect, assistColl); } dc.Close(); _children.Add(_mainVisual); }
private void CreateCollectionVisual(DrawingContext drawingContext, Rect drawRect, ChartItemCollection collection) { // Create a rectangle and draw it in the DrawingContext. collection.CalculatePosition(drawRect); collection.Draw(drawingContext); }