private Image CreateImageToHighlightLine(Geometry geometry, LineResultMarker marker) { GeometryDrawing backgroundGeometry = new GeometryDrawing(marker.Fill, marker.Outline, geometry); backgroundGeometry.Freeze(); DrawingImage backgroundDrawning = new DrawingImage(backgroundGeometry); backgroundDrawning.Freeze(); return new Image {Source = backgroundDrawning}; }
private void HighlightLine(SnapshotSpan line, LineResultMarker marker) { IWpfTextViewLineCollection textViewLines = View.TextViewLines; Geometry geometry = textViewLines.GetMarkerGeometry(line); if (geometry != null) { Image highlight = CreateImageToHighlightLine(geometry, marker); Canvas.SetLeft(highlight, geometry.Bounds.Left); Canvas.SetTop(highlight, geometry.Bounds.Top); Layer.AddAdornment(AdornmentPositioningBehavior.TextRelative, line, AdornmentLayerTags.ResultMarker, highlight, null); } }