Browse Source

Fixed SpecialCharacterTextRun positioning; made box slightly transparent.

4.0
Daniel Grunwald 14 years ago
parent
commit
ab3f7c51a1
  1. 16
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/SingleCharacterElementGenerator.cs

16
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/SingleCharacterElementGenerator.cs

@ -230,6 +230,14 @@ namespace ICSharpCode.AvalonEdit.Rendering @@ -230,6 +230,14 @@ namespace ICSharpCode.AvalonEdit.Rendering
sealed class SpecialCharacterTextRun : FormattedTextRun
{
static readonly SolidColorBrush darkGrayBrush;
static SpecialCharacterTextRun()
{
darkGrayBrush = new SolidColorBrush(Color.FromArgb(200, 128, 128, 128));
darkGrayBrush.Freeze();
}
public SpecialCharacterTextRun(FormattedTextElement element, TextRunProperties properties)
: base(element, properties)
{
@ -237,10 +245,10 @@ namespace ICSharpCode.AvalonEdit.Rendering @@ -237,10 +245,10 @@ namespace ICSharpCode.AvalonEdit.Rendering
public override void Draw(DrawingContext drawingContext, Point origin, bool rightToLeft, bool sideways)
{
Point newOrigin = new Point(origin.X + 1, origin.Y);
var metrics = Format(double.PositiveInfinity);
Rect r = new Rect(newOrigin.X + 1, newOrigin.Y - metrics.Baseline, metrics.Width + 1, metrics.Height);
drawingContext.DrawRoundedRectangle(Brushes.DarkGray, null, r, 2.5, 2.5);
Point newOrigin = new Point(origin.X + 1.5, origin.Y);
var metrics = base.Format(double.PositiveInfinity);
Rect r = new Rect(newOrigin.X - 0.5, newOrigin.Y - metrics.Baseline, metrics.Width + 2, metrics.Height);
drawingContext.DrawRoundedRectangle(darkGrayBrush, null, r, 2.5, 2.5);
base.Draw(drawingContext, newOrigin, rightToLeft, sideways);
}

Loading…
Cancel
Save