public void RenderUnfilledElements(PlotRendererD2D canvas, System.Windows.Rect chartArea, System.Windows.Media.MatrixTransform PrimitiveTransform) { var storedTransform = canvas.RenderTarget.Transform; //canvas.RenderTarget.Transform = PrimitiveTransform.ToD2D(); //for(int segmentIndex = 0; segmentIndex < _lineColors.Count; ++segmentIndex) { // var brush = canvas.RenderTarget.CreateSolidColorBrush(_lineColors[segmentIndex].ToD2D()); // canvas.RenderTarget.DrawLine(Points[segmentIndex * 2].ToD2D(), Points[segmentIndex * 2 + 1].ToD2D(), brush, (float)LineThickness); //} //canvas.RenderTarget.Transform = storedTransform; if (this.LineColor != System.Windows.Media.Colors.Transparent && LineThickness > 0) { GeometryAndFlag gnf = null; if (!_geometryByFactory.TryGetValue(canvas.D2DFactory.NativePointer, out gnf) || gnf.RecalcGeometry) { CalculateGeometry(canvas.D2DFactory, chartArea); } if (_geometryByFactory.TryGetValue(canvas.D2DFactory.NativePointer, out gnf)) { var transformedGeometry = new TransformedGeometry(canvas.D2DFactory, gnf.UnfilledGeometry, PrimitiveTransform.ToD2D()); var brush = new SolidColorBrush(canvas.RenderTarget, LineColor.ToD2D()); canvas.RenderTarget.DrawGeometry(transformedGeometry, brush, (float)LineThickness); } } }
public void RenderUnfilledElements(PlotRendererD2D canvas, System.Windows.Rect chartArea, System.Windows.Media.MatrixTransform PrimitiveTransform) { if (Points.Count > 0 && LineColor != System.Windows.Media.Colors.Transparent && LineThickness > 0) { GeometryAndFlag gnf = null; if (!_geometryByFactory.TryGetValue(canvas.D2DFactory.NativePointer, out gnf) || gnf.RecalcGeometry || gnf.Rect != chartArea) { CalculateGeometry(canvas.D2DFactory, chartArea); } if (_geometryByFactory.TryGetValue(canvas.D2DFactory.NativePointer, out gnf)) { var transformedGeometry = new TransformedGeometry(canvas.D2DFactory, gnf.UnfilledGeometry, PrimitiveTransform.ToD2D()); var brush = new SolidColorBrush(canvas.RenderTarget, LineColor.ToD2D()); canvas.RenderTarget.DrawGeometry(transformedGeometry, brush, (float)LineThickness); } } }