Browse Source

fix rendering issues in SearchResultBackgroundRenderer, if results have length 0. Make MarkerBrush customizable

pull/23/head
Siegfried Pammer 15 years ago
parent
commit
2f4b128d25
  1. 23
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Search/SearchResultBackgroundRenderer.cs

23
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Search/SearchResultBackgroundRenderer.cs

@ -29,6 +29,23 @@ namespace ICSharpCode.AvalonEdit.Search @@ -29,6 +29,23 @@ namespace ICSharpCode.AvalonEdit.Search
}
}
public SearchResultBackgroundRenderer()
{
markerBrush = Brushes.LightGreen;
markerPen = new Pen(markerBrush, 1);
}
Brush markerBrush;
Pen markerPen;
public Brush MarkerBrush {
get { return markerBrush; }
set {
this.markerBrush = value;
markerPen = new Pen(markerBrush, 1);
}
}
public void Draw(TextView textView, DrawingContext drawingContext)
{
if (textView == null)
@ -48,14 +65,12 @@ namespace ICSharpCode.AvalonEdit.Search @@ -48,14 +65,12 @@ namespace ICSharpCode.AvalonEdit.Search
foreach (SearchResult result in currentResults.FindOverlappingSegments(viewStart, viewEnd - viewStart)) {
BackgroundGeometryBuilder geoBuilder = new BackgroundGeometryBuilder();
geoBuilder.AlignToWholePixels = true;
geoBuilder.AlignToMiddleOfPixels = true;
geoBuilder.CornerRadius = 3;
geoBuilder.AddSegment(textView, result);
Geometry geometry = geoBuilder.CreateGeometry();
if (geometry != null) {
SolidColorBrush brush = new SolidColorBrush(Colors.LightGreen);
brush.Freeze();
drawingContext.DrawGeometry(brush, null, geometry);
drawingContext.DrawGeometry(markerBrush, markerPen, geometry);
}
}
}

Loading…
Cancel
Save