public void Draw(TextView textview, DrawingContext drawingContext) { if (_result != null) { var backgroundGeometryBuilder = new BackgroundGeometryBuilder { CornerRadius = 1.0, AlignToMiddleOfPixels = true }; backgroundGeometryBuilder.AddSegment(textview, new TextSegment { StartOffset = _result.OpeningBracketOffset, Length = _result.OpeningBracketLength }); backgroundGeometryBuilder.CloseFigure(); backgroundGeometryBuilder.AddSegment(textview, new TextSegment { StartOffset = _result.ClosingBracketOffset, Length = _result.ClosingBracketLength }); var geometry = backgroundGeometryBuilder.CreateGeometry(); if (_borderPen == null) { UpdateColors(DefaultBackground, DefaultBackground); } if (geometry != null) { drawingContext.DrawGeometry(_backgroundBrush, _borderPen, geometry); } } }
public void Draw(TextView textView, DrawingContext drawingContext) { if (result == null) return; var builder = new BackgroundGeometryBuilder(); builder.AlignToMiddleOfPixels = true; builder.AddSegment(textView, new TextSegment { StartOffset = result.OpeningOffset, Length = 1 }); builder.CloseFigure(); // prevent connecting the two segments builder.AddSegment(textView, new TextSegment { StartOffset = result.ClosingOffset, Length = 1 }); var geometry = builder.CreateGeometry(); if (geometry != null) drawingContext.DrawGeometry(backgroundBrush, borderPen, geometry); }
public void Draw(TextView textView, DrawingContext drawingContext) { if (this.renderedReferences == null) return; BackgroundGeometryBuilder builder = new BackgroundGeometryBuilder(); builder.CornerRadius = cornerRadius; builder.AlignToMiddleOfPixels = true; foreach (var reference in this.renderedReferences) { builder.AddSegment(textView, new TextSegment() { StartOffset = reference.Offset, Length = reference.Length }); builder.CloseFigure(); } Geometry geometry = builder.CreateGeometry(); if (geometry != null) { drawingContext.DrawGeometry(backgroundBrush, borderPen, geometry); } }
public void Draw(TextView textView, DrawingContext drawingContext) { if (this.result == null) return; BackgroundGeometryBuilder builder = new BackgroundGeometryBuilder(); builder.CornerRadius = 1; builder.AlignToMiddleOfPixels = true; builder.AddSegment(textView, new TextSegment() { StartOffset = result.OpeningBracketOffset, Length = result.OpeningBracketLength }); builder.CloseFigure(); // prevent connecting the two segments builder.AddSegment(textView, new TextSegment() { StartOffset = result.ClosingBracketOffset, Length = result.ClosingBracketLength }); Geometry geometry = builder.CreateGeometry(); if (geometry != null) { drawingContext.DrawGeometry(backgroundBrush, borderPen, geometry); } }
public void Draw(TextView textView, DrawingContext drawingContext) { if (currentReferences == null) { if (textView.VisualLines.Count == 0) return; var start = textView.VisualLines.First().FirstDocumentLine.LineNumber; var end = textView.VisualLines.Last().LastDocumentLine.LineNumber; currentReferences = new List<ISegment>(); FindCurrentReferences(start, end); } if (currentReferences.Count == 0) return; BackgroundGeometryBuilder builder = new BackgroundGeometryBuilder(); builder.CornerRadius = cornerRadius; builder.AlignToMiddleOfPixels = true; foreach (var reference in this.currentReferences) { builder.AddSegment(textView, new TextSegment() { StartOffset = reference.Offset, Length = reference.Length }); builder.CloseFigure(); } Geometry geometry = builder.CreateGeometry(); if (geometry != null) { drawingContext.DrawGeometry(backgroundBrush, borderPen, geometry); } }
public void Draw(TextView textView, DrawingContext drawingContext) { BackgroundGeometryBuilder builder = new BackgroundGeometryBuilder(); builder.CornerRadius = 1; builder.AlignToMiddleOfPixels = true; builder.AddSegment(textView, new TextSegment() { StartOffset = _from, Length = _len }); builder.CloseFigure(); // prevent connecting the two segments Geometry geometry = builder.CreateGeometry(); if (geometry != null) { drawingContext.DrawGeometry(Brushes.LightGreen, border, geometry); } }
public void Draw(TextView textView, DrawingContext drawingContext) { if (this.result == null) return; BackgroundGeometryBuilder builder = new BackgroundGeometryBuilder(); builder.CornerRadius = 1; builder.AlignToMiddleOfPixels = true; builder.AddSegment(textView, new TextSegment() { StartOffset = result.OpeningBracketOffset, Length = result.OpeningBracketLength }); builder.CloseFigure(); // prevent connecting the two segments builder.AddSegment(textView, new TextSegment() { StartOffset = result.ClosingBracketOffset, Length = result.ClosingBracketLength }); Geometry geometry = builder.CreateGeometry(); //Transform highlightFixTransform = new TranslateTransform(0, 2); //geometry.Transform.Value.OffsetY = 2; if (borderPen == null) this.UpdateColors(DefaultBackground, DefaultBackground); if (result.ClosingBracketLength == 0) this.UpdateColors(InvalidBackground, InvalidBackground); else this.UpdateColors(DefaultBackground, DefaultBackground); if (geometry != null) { drawingContext.DrawGeometry(backgroundBrush, borderPen, geometry ); } }
public void Draw(TextView textView, System.Windows.Media.DrawingContext drawingContext) { ISegment s = element.Segment; if (s != null) { BackgroundGeometryBuilder geoBuilder = new BackgroundGeometryBuilder(); geoBuilder.AlignToMiddleOfPixels = true; if (Layer == KnownLayer.Background) { geoBuilder.AddSegment(textView, s); drawingContext.DrawGeometry(backgroundBrush, null, geoBuilder.CreateGeometry()); } else { // draw foreground only if active if (element.isCaretInside) { geoBuilder.AddSegment(textView, s); foreach (BoundActiveElement boundElement in element.context.ActiveElements.OfType<BoundActiveElement>()) { if (boundElement.targetElement == element) { geoBuilder.AddSegment(textView, boundElement.Segment); geoBuilder.CloseFigure(); } } drawingContext.DrawGeometry(null, activeBorderPen, geoBuilder.CreateGeometry()); } } } }
public void Draw(TextView textView, DrawingContext drawingContext) { if (this.renderedSegments == null) { return; } BackgroundGeometryBuilder builder = new BackgroundGeometryBuilder(); builder.CornerRadius = this.cornerRadius; builder.AlignToMiddleOfPixels = true; foreach (var segment in this.renderedSegments) { builder.AddSegment(textView, segment); builder.CloseFigure(); } Geometry geometry = builder.CreateGeometry(); if (geometry != null) { drawingContext.DrawGeometry(this.backgroundBrush, this.borderPen, geometry); } }