public override void OnRender(DrawingContext dc) { if (this._pts != null) { dc.DrawPolygon(base.Fill, base.Stroke, this._pts); } }
public static void Render(DrawingContext dc, CanvasData cd) { foreach (var data in _dataStore) { switch (data.Type) { case DrawType.Elipse: foreach (var point in data.Points) { dc.DrawEllipse(GetBrush(data.Color), null, point.ToCanvasPoint(), DebugDrawSize, DebugDrawSize); } break; case DrawType.PolyLine: var points = RadarCanvas.GrahamScan.GrahamScanCompute(data.Points).Select(p => p.ToCanvasPoint()); dc.DrawPolygon(points, GetBrush(data.Color)); break; case DrawType.Text: var txtPos = data.Points.First().ToCanvasPoint(); txtPos.Y += 15; var gr = DrawingUtilities.CreateGlyphRun(data.Name, 10, txtPos); dc.DrawGlyphRun(GetBrush(data.Color), gr); break; } } }
/// <summary> /// Override the OnRender and draw using the DrawingContext that is passed /// in. /// </summary> /// <param name="dc"></param> public override void OnRender(DrawingContext dc) { // Paint the background. dc.DrawRectangle(new SolidColorBrush(ColorUtility.ColorFromRGB(128, 0, 255)), new Pen(ColorUtility.ColorFromRGB(128, 0, 255)), 0, 0, Width, Height); // Draw some circles. for (int i = 0; i < 3; i++) { dc.DrawEllipse(new SolidColorBrush(ColorUtility.ColorFromRGB((byte)(64 * i), 128, 128)), new Pen(ColorUtility.ColorFromRGB(255, (byte)(64 * i), 255)), Width / 5, Height / 5, i * (Width / 10 - (i * 2)), i * (Height / 10 - (i * 2))); } // Draw some lines. for (int i = 0; i < 20; i++) { dc.DrawLine(new Pen(ColorUtility.ColorFromRGB((byte)(16 * i), (byte)(16 * (20 - i)), (byte)(16 * (2 * i)))), _random.Next(Width / 2) + Width / 3, _random.Next(Height / 3) + Height / 3, _random.Next(Width / 4) + Width / 2, _random.Next(Height / 4) + Height / 2); } // Draw a rectangle. dc.DrawRectangle(new SolidColorBrush(ColorUtility.ColorFromRGB(255, 0, 0)), new Pen(ColorUtility.ColorFromRGB(0, 0, 255)), Width - 40, 0, 30, 100); // Draw a polyline. int[] points = { 10, 230, 30, 210, 0, 180, 30, 130, 50, 130, 80, 180, 50, 210, 70, 230 }; if (Width > Height) { for (int i = 1; i < points.Length; i += 2) { points[i] -= 20; } } dc.DrawPolygon(new SolidColorBrush(ColorUtility.ColorFromRGB(32, 0, 128)), new Pen(ColorUtility.ColorFromRGB(0, 0, 0)), points); // Draw some text. dc.DrawText(Resource.GetString(Resource.StringResources.DrawTextSample), Resource.GetFont(Resource.FontResources.NinaB), ColorUtility.ColorFromRGB(255, 255, 255), _random.Next(Width / 4), Height - 20); }
public override void OnRender(DrawingContext dc) { if (_pushClippingRectangle) { try { dc.PushClippingRectangle(x0, y0, xDimension, yDimension); } catch (ArgumentException ex) { Log.Comment("Caught " + ex.Message + " when Pushing a clipping rectangle at (" + x0 + ", " + y0 + ")" + " and Width = " + xDimension + " Height = " + yDimension); _argumentException = true; } } if (_popClippingRectangle) { dc.PopClippingRectangle(); } if (_getClippingRectangle) { dc.GetClippingRectangle(out x1, out y1, out wd, out ht); } if (_drawLine) { dc.DrawLine(_pen, x0, y0, x1, y1); } if (_drawRectangle) { try { dc.DrawRectangle(_brush, _pen, r, s, xDimension, yDimension); } catch (ArgumentException ex) { Log.Comment("Caught " + ex.Message + " when drawing a Rectangle at (" + r + ", " + s + ")" + " Width = " + xDimension + " Height = " + yDimension); _argumentException = true; } } if (_drawEllipse) { dc.DrawEllipse(_brush, _pen, r, s, xDimension, yDimension); } if (_drawPolygon) { dc.DrawPolygon(_brush, _pen, pts); } if (_clear) { dc.Clear(); } if (_setPixel) { dc.SetPixel(_color, r, s); } if (_drawImage) { try { dc.DrawImage(bmp1, r, s); } catch (NullReferenceException ex) { Log.Comment("Caught " + ex.Message + " when drawing a null Image"); _nullReferenceException = true; } } if (_drawCroppedImage) { try { dc.DrawImage(bmp1, r, s, x0, y0, xDimension, yDimension); } catch (ArgumentException ex) { Log.Comment("Caught " + ex.Message + " when drawing an Image at (" + r + ", " + s + ")" + "from a source Image at(" + x0 + ", " + y0 + ") Width = " + xDimension + " Height = " + yDimension); _argumentException = true; } catch (NullReferenceException ex) { Log.Comment("Caught " + ex.Message + " when drawing a null Image"); _nullReferenceException = true; } } if (_translate) { dc.Translate(r, s); } if (_blendImage) { dc.BlendImage(bmp2, x0, y0, x1, y1, xDimension, yDimension, _opacity); } if (_drawText) { _textFits = dc.DrawText(ref _str, _font, _color, r, s, xDimension, yDimension, _alignment, _trimming); } base.OnRender(dc); _pBitmap = dc.Bitmap; Master_Media.autoEvent.Set(); }