/// <summary> /// /// </summary> /// <param name="gfx"></param> /// <param name="color"></param> /// <param name="rect"></param> private void DrawBackgroundInternal(XGraphics gfx, Core2D.ArgbColor color, Core2D.Rect2 rect) { gfx.DrawRectangle( null, ToXSolidBrush(color), _scaleToPage(rect.X), _scaleToPage(rect.Y), _scaleToPage(rect.Width), _scaleToPage(rect.Height)); }
/// <summary> /// /// </summary> /// <param name="gfx"></param> /// <param name="stroke"></param> /// <param name="rect"></param> /// <param name="offsetX"></param> /// <param name="offsetY"></param> /// <param name="cellWidth"></param> /// <param name="cellHeight"></param> /// <param name="isStroked"></param> private void DrawGridInternal( XGraphics gfx, XPen stroke, ref Core2D.Rect2 rect, double offsetX, double offsetY, double cellWidth, double cellHeight, bool isStroked) { double ox = rect.X; double oy = rect.Y; double sx = ox + offsetX; double sy = oy + offsetY; double ex = ox + rect.Width; double ey = oy + rect.Height; for (double x = sx; x < ex; x += cellWidth) { var p0 = new XPoint( _scaleToPage(x), _scaleToPage(oy)); var p1 = new XPoint( _scaleToPage(x), _scaleToPage(ey)); DrawLineInternal(gfx, stroke, isStroked, ref p0, ref p1); } for (double y = sy; y < ey; y += cellHeight) { var p0 = new XPoint( _scaleToPage(ox), _scaleToPage(y)); var p1 = new XPoint( _scaleToPage(ex), _scaleToPage(y)); DrawLineInternal(gfx, stroke, isStroked, ref p0, ref p1); } }
private void DrawEllipseInternal(DxfDocument doc, Layer layer, bool isFilled, bool isStroked, Core2D.BaseStyle style, ref Core2D.Rect2 rect) { var dxfEllipse = CreateEllipse(rect.X, rect.Y, rect.Width, rect.Height); if (isFilled) { var fill = GetColor(style.Fill); var fillTransparency = GetTransparency(style.Fill); // TODO: The netDxf does not create hatch for Ellipse with end angle equal to 360. var bounds = new List <HatchBoundaryPath> { new HatchBoundaryPath( new List <EntityObject> { (Ellipse)dxfEllipse.Clone() }) }; var hatch = new Hatch(HatchPattern.Solid, bounds, false); hatch.Layer = layer; hatch.Color = fill; hatch.Transparency.Value = fillTransparency; doc.AddEntity(hatch); } if (isStroked) { var stroke = GetColor(style.Stroke); var strokeTansparency = GetTransparency(style.Stroke); var lineweight = ThicknessToLineweight(style.Thickness); dxfEllipse.Layer = layer; dxfEllipse.Color = stroke; dxfEllipse.Transparency.Value = strokeTansparency; dxfEllipse.Lineweight.Value = lineweight; doc.AddEntity(dxfEllipse); } }
private void DrawGridInternal(DxfDocument doc, Layer layer, Core2D.ShapeStyle style, double offsetX, double offsetY, double cellWidth, double cellHeight, ref Core2D.Rect2 rect) { var stroke = GetColor(style.Stroke); var strokeTansparency = GetTransparency(style.Stroke); var lineweight = ThicknessToLineweight(style.Thickness); double ox = rect.X; double oy = rect.Y; double sx = ox + offsetX; double sy = oy + offsetY; double ex = ox + rect.Width; double ey = oy + rect.Height; for (double gx = sx; gx < ex; gx += cellWidth) { var dxfLine = CreateLine(gx, oy, gx, ey); dxfLine.Layer = layer; dxfLine.Color = stroke; dxfLine.Transparency.Value = strokeTansparency; dxfLine.Lineweight.Value = lineweight; doc.AddEntity(dxfLine); } for (double gy = sy; gy < ey; gy += cellHeight) { var dxfLine = CreateLine(ox, gy, ex, gy); dxfLine.Layer = layer; dxfLine.Color = stroke; dxfLine.Transparency.Value = strokeTansparency; dxfLine.Lineweight.Value = lineweight; doc.AddEntity(dxfLine); } }
private void DrawRectangleInternal(DxfDocument doc, Layer layer, bool isFilled, bool isStroked, Core2D.BaseStyle style, ref Core2D.Rect2 rect) { double x = rect.X; double y = rect.Y; double w = rect.Width; double h = rect.Height; var dxfLine1 = CreateLine(x, y, x + w, y); var dxfLine2 = CreateLine(x + w, y, x + w, y + h); var dxfLine3 = CreateLine(x + w, y + h, x, y + h); var dxfLine4 = CreateLine(x, y + h, x, y); if (isFilled) { var fill = GetColor(style.Fill); var fillTransparency = GetTransparency(style.Fill); var bounds = new List <HatchBoundaryPath> { new HatchBoundaryPath( new List <EntityObject> { (Line)dxfLine1.Clone(), (Line)dxfLine2.Clone(), (Line)dxfLine3.Clone(), (Line)dxfLine4.Clone() }) }; var hatch = new Hatch(HatchPattern.Solid, bounds, false); hatch.Layer = layer; hatch.Color = fill; hatch.Transparency.Value = fillTransparency; doc.AddEntity(hatch); } if (isStroked) { var stroke = GetColor(style.Stroke); var strokeTansparency = GetTransparency(style.Stroke); var lineweight = ThicknessToLineweight(style.Thickness); dxfLine1.Layer = layer; dxfLine1.Color = stroke; dxfLine1.Transparency.Value = strokeTansparency; dxfLine1.Lineweight.Value = lineweight; dxfLine2.Layer = layer; dxfLine2.Color = stroke; dxfLine2.Transparency.Value = strokeTansparency; dxfLine2.Lineweight.Value = lineweight; dxfLine3.Layer = layer; dxfLine3.Color = stroke; dxfLine3.Transparency.Value = strokeTansparency; dxfLine3.Lineweight.Value = lineweight; dxfLine4.Layer = layer; dxfLine4.Color = stroke; dxfLine4.Transparency.Value = strokeTansparency; dxfLine4.Lineweight.Value = lineweight; doc.AddEntity(dxfLine1); doc.AddEntity(dxfLine2); doc.AddEntity(dxfLine3); doc.AddEntity(dxfLine4); } }