Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 private void CreateCollectionVisual(DrawingContext drawingContext, Rect drawRect, ChartItemCollection collection)
 {
     // Create a rectangle and draw it in the DrawingContext.
     collection.CalculatePosition(drawRect);
     collection.Draw(drawingContext);
 }