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) {