diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/DottedLineMargin.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/DottedLineMargin.cs
index 7408e28865..d19791d500 100644
--- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/DottedLineMargin.cs
+++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/DottedLineMargin.cs
@@ -3,6 +3,7 @@
using System;
using System.Windows;
+using System.Windows.Data;
using System.Windows.Media;
using System.Windows.Shapes;
@@ -19,18 +20,24 @@ namespace ICSharpCode.AvalonEdit.Editing
///
/// Creates a vertical dotted line to separate the line numbers from the text view.
///
- 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,
StrokeDashArray = { 0, 2 },
Stretch = Stretch.Fill,
- Stroke = Brushes.Gray,
StrokeThickness = 1,
StrokeDashCap = PenLineCap.Round,
Margin = new Thickness(2, 0, 2, 0),
Tag = tag
};
+
+ line.SetBinding(
+ Line.StrokeProperty,
+ new Binding("LineNumbersForeground") { Source = editor }
+ );
+
+ return line;
}
///
diff --git a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/TextEditor.cs b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/TextEditor.cs
index 0c44e07733..4152385319 100644
--- a/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/TextEditor.cs
+++ b/src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/TextEditor.cs
@@ -470,9 +470,13 @@ namespace ICSharpCode.AvalonEdit
TextEditor editor = (TextEditor)d;
var leftMargins = editor.TextArea.LeftMargins;
if ((bool)e.NewValue) {
- leftMargins.Insert(0, new LineNumberMargin());
- leftMargins.Insert(1, DottedLineMargin.Create());
- leftMargins[0].SetValue(Control.ForegroundProperty, editor.LineNumbersForeground);
+ var lineNumbers = new LineNumberMargin();
+ leftMargins.Insert(0, lineNumbers);
+ leftMargins.Insert(1, DottedLineMargin.Create(editor));
+ lineNumbers.SetBinding(Control.ForegroundProperty,
+ new Binding("LineNumbersForeground") {
+ Source = editor
+ });
} else {
for (int i = 0; i < leftMargins.Count; i++) {
if (leftMargins[i] is LineNumberMargin) {