void PaintJoint(NPaintVisitor pv, double radius) { double innerR = radius - 3; pv.PaintEllipse(-radius, -radius, 2 * radius, 2 * radius); pv.PaintEllipse(-innerR, -innerR, 2 * innerR, 2 * innerR); }
protected override void OnPostPaint(NPaintVisitor visitor) { base.OnPostPaint(visitor); if (String.IsNullOrEmpty(m_Status)) { return; } visitor.ClearStyles(); visitor.SetFont(Font); // Determine status bounds NRectangle contentArea = GetContentEdge(); double length = NMath.Max(contentArea.Width, contentArea.Height) * 0.3; NRectangle statusBounds = new NRectangle(contentArea.Right - length - 5, contentArea.Top + 5, length, length); // Fill the status bounds with a circle NExamplesHomePage homePage = (NExamplesHomePage)GetFirstAncestor(NExamplesHomePage.NExamplesHomePageSchema); NColor color = homePage.GetStatusColor(m_Status); visitor.SetFill(new NColor(color, 160)); visitor.PaintEllipse(statusBounds); // Create text paint settings NPaintTextRectSettings settings = new NPaintTextRectSettings(); settings.HorzAlign = ENTextHorzAlign.Center; settings.VertAlign = ENTextVertAlign.Center; // Paint the status text in the top right corner visitor.SetFill(NColor.White); visitor.PaintString(statusBounds, m_Status, ref settings); }
public void Paint(NPaintVisitor visitor) { NColor color; switch (State) { case ENTouchDeviceState.Down: color = NColor.Blue; break; case ENTouchDeviceState.Unknown: color = NColor.Green; break; case ENTouchDeviceState.Up: color = NColor.Red; break; default: throw new Exception("New ENTouchDeviceState?"); } NSize size = Size; if (size.Width == 0 || size.Height == 0) { size = new NSize(5, 5); } visitor.SetStroke(new NStroke(color)); visitor.PaintEllipse(NRectangle.FromCenterAndSize(Location, size)); }
void OnCanvasPrePaint(NCanvasPaintEventArgs args) { NCanvas canvas = args.TargetNode as NCanvas; if (canvas == null) { return; } NStroke stroke = (NStroke)canvas.Tag; NPaintVisitor visitor = args.PaintVisitor; visitor.SetStroke(stroke); visitor.SetFill(null); double strokeWidth = stroke.Width; double rectWidth = 300; double ellipseWidth = 150; double polylineWidth = 180; double dist = 20; double x1 = 10 + strokeWidth / 2; double x2 = x1 + rectWidth + dist + strokeWidth; double x3 = x2 + ellipseWidth; double x4 = x3 + dist + strokeWidth; double x5 = x4 + polylineWidth + dist + strokeWidth / 2; double y1 = 10 + strokeWidth / 2; double y2 = y1 + strokeWidth + 10; double y3 = y1 + 50; // draw a horizontal line visitor.PaintLine(x1, y1, x3, y1); // draw a rectangle visitor.PaintRectangle(x1, y2, rectWidth, 100); // draw an ellipse visitor.PaintEllipse(x2, y2, ellipseWidth, 100); // draw a polyline NPolyline polyLine = new NPolyline(4); polyLine.Add(new NPoint(x4, y2 + 90)); polyLine.Add(new NPoint(x4 + 60, y2)); polyLine.Add(new NPoint(x4 + 120, y2 + 90)); polyLine.Add(new NPoint(x4 + 180, y2)); visitor.PaintPolyline(polyLine); // draw text string dashStyleName = stroke.DashStyle.ToString(); visitor.ClearStroke(); visitor.SetFont(m_LabelFont); visitor.SetFill(m_LabelFill); NPaintTextRectSettings settings = new NPaintTextRectSettings(); visitor.PaintString(new NRectangle(x5, y3, 200, 50), dashStyleName, ref settings); }
void PaintEllipse(NPaintVisitor paintVisitor, double w, double h) { NRadialGradientFill rgf = new NRadialGradientFill(); rgf.GradientStops.Add(new NGradientStop(0, NColor.Indigo)); rgf.GradientStops.Add(new NGradientStop(0.6f, NColor.SlateBlue)); rgf.GradientStops.Add(new NGradientStop(1, new NColor(NColor.Crimson, 30))); paintVisitor.SetStroke(NColor.Black, 1); paintVisitor.SetFill(rgf); paintVisitor.PaintEllipse(0.2 * w, 0.3 * h, 0.6 * w, 0.4 * h); }
void PaintEllipse(NPaintVisitor paintVisitor, double w, double h) { paintVisitor.PaintEllipse(0.05 * w, 0.25 * h, 0.9 * w, 0.5 * h); }