Browse Source

SD-1592: DottedLineMargin got same color as line numbers

pull/14/head
Siegfried Pammer 15 years ago
parent
commit
d9f3afd5b2
  1. 13
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/DottedLineMargin.cs
  2. 10
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/TextEditor.cs

13
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/DottedLineMargin.cs

@ -3,6 +3,7 @@
using System; using System;
using System.Windows; using System.Windows;
using System.Windows.Data;
using System.Windows.Media; using System.Windows.Media;
using System.Windows.Shapes; using System.Windows.Shapes;
@ -19,18 +20,24 @@ namespace ICSharpCode.AvalonEdit.Editing
/// <summary> /// <summary>
/// Creates a vertical dotted line to separate the line numbers from the text view. /// Creates a vertical dotted line to separate the line numbers from the text view.
/// </summary> /// </summary>
public static UIElement Create() public static UIElement Create(TextEditor editor)
{ {
return new Line { Line line = new Line {
X1 = 0, Y1 = 0, X2 = 0, Y2 = 1, X1 = 0, Y1 = 0, X2 = 0, Y2 = 1,
StrokeDashArray = { 0, 2 }, StrokeDashArray = { 0, 2 },
Stretch = Stretch.Fill, Stretch = Stretch.Fill,
Stroke = Brushes.Gray,
StrokeThickness = 1, StrokeThickness = 1,
StrokeDashCap = PenLineCap.Round, StrokeDashCap = PenLineCap.Round,
Margin = new Thickness(2, 0, 2, 0), Margin = new Thickness(2, 0, 2, 0),
Tag = tag Tag = tag
}; };
line.SetBinding(
Line.StrokeProperty,
new Binding("LineNumbersForeground") { Source = editor }
);
return line;
} }
/// <summary> /// <summary>

10
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/TextEditor.cs

@ -470,9 +470,13 @@ namespace ICSharpCode.AvalonEdit
TextEditor editor = (TextEditor)d; TextEditor editor = (TextEditor)d;
var leftMargins = editor.TextArea.LeftMargins; var leftMargins = editor.TextArea.LeftMargins;
if ((bool)e.NewValue) { if ((bool)e.NewValue) {
leftMargins.Insert(0, new LineNumberMargin()); var lineNumbers = new LineNumberMargin();
leftMargins.Insert(1, DottedLineMargin.Create()); leftMargins.Insert(0, lineNumbers);
leftMargins[0].SetValue(Control.ForegroundProperty, editor.LineNumbersForeground); leftMargins.Insert(1, DottedLineMargin.Create(editor));
lineNumbers.SetBinding(Control.ForegroundProperty,
new Binding("LineNumbersForeground") {
Source = editor
});
} else { } else {
for (int i = 0; i < leftMargins.Count; i++) { for (int i = 0; i < leftMargins.Count; i++) {
if (leftMargins[i] is LineNumberMargin) { if (leftMargins[i] is LineNumberMargin) {

Loading…
Cancel
Save