|
|
@ -166,6 +166,40 @@ namespace ICSharpCode.AvalonEdit.Rendering |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void SetupTextRendering() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (Options.EnableTextAntialiasing) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (Options.EnableTextHinting) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (CurrentZoom == 1.0) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
TextOptions.SetTextFormattingMode(this, TextFormattingMode.Display); |
|
|
|
|
|
|
|
TextOptions.SetTextRenderingMode(this, TextRenderingMode.ClearType); |
|
|
|
|
|
|
|
TextOptions.SetTextHintingMode(this, TextHintingMode.Auto); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
TextOptions.SetTextFormattingMode(this, TextFormattingMode.Ideal); |
|
|
|
|
|
|
|
TextOptions.SetTextRenderingMode(this, TextRenderingMode.Grayscale); |
|
|
|
|
|
|
|
TextOptions.SetTextHintingMode(this, TextHintingMode.Auto); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
TextOptions.SetTextFormattingMode(this, TextFormattingMode.Ideal); |
|
|
|
|
|
|
|
TextOptions.SetTextRenderingMode(this, TextRenderingMode.Grayscale); |
|
|
|
|
|
|
|
TextOptions.SetTextHintingMode(this, TextHintingMode.Animated); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
TextOptions.SetTextFormattingMode(this, TextFormattingMode.Display); |
|
|
|
|
|
|
|
TextOptions.SetTextRenderingMode(this, TextRenderingMode.Aliased); |
|
|
|
|
|
|
|
TextOptions.SetTextHintingMode(this, TextHintingMode.Auto); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/// <inheritdoc cref="IWeakEventListener.ReceiveWeakEvent"/>
|
|
|
|
/// <inheritdoc cref="IWeakEventListener.ReceiveWeakEvent"/>
|
|
|
|
protected virtual bool ReceiveWeakEvent(Type managerType, object sender, EventArgs e) |
|
|
|
protected virtual bool ReceiveWeakEvent(Type managerType, object sender, EventArgs e) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -225,6 +259,7 @@ namespace ICSharpCode.AvalonEdit.Rendering |
|
|
|
else |
|
|
|
else |
|
|
|
columnRulerRenderer.SetRuler(-1, ColumnRulerPen); |
|
|
|
columnRulerRenderer.SetRuler(-1, ColumnRulerPen); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SetupTextRendering(); |
|
|
|
UpdateBuiltinElementGeneratorsFromOptions(); |
|
|
|
UpdateBuiltinElementGeneratorsFromOptions(); |
|
|
|
Redraw(); |
|
|
|
Redraw(); |
|
|
|
} |
|
|
|
} |
|
|
@ -1419,6 +1454,18 @@ namespace ICSharpCode.AvalonEdit.Rendering |
|
|
|
|
|
|
|
|
|
|
|
ScrollViewer IScrollInfo.ScrollOwner { get; set; } |
|
|
|
ScrollViewer IScrollInfo.ScrollOwner { get; set; } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
|
|
/// Gets the zoom level;
|
|
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
public double CurrentZoom |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
get |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
dynamic scrollOwner = ((IScrollInfo) this).ScrollOwner; |
|
|
|
|
|
|
|
return scrollOwner?.CurrentZoom ?? 1.0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void IScrollInfo.LineUp() |
|
|
|
void IScrollInfo.LineUp() |
|
|
|
{ |
|
|
|
{ |
|
|
|
((IScrollInfo)this).SetVerticalOffset(scrollOffset.Y - DefaultLineHeight); |
|
|
|
((IScrollInfo)this).SetVerticalOffset(scrollOffset.Y - DefaultLineHeight); |
|
|
@ -1999,6 +2046,8 @@ namespace ICSharpCode.AvalonEdit.Rendering |
|
|
|
protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e) |
|
|
|
protected override void OnPropertyChanged(DependencyPropertyChangedEventArgs e) |
|
|
|
{ |
|
|
|
{ |
|
|
|
base.OnPropertyChanged(e); |
|
|
|
base.OnPropertyChanged(e); |
|
|
|
|
|
|
|
if (e.Property == TextView.ActualHeightProperty) |
|
|
|
|
|
|
|
SetupTextRendering(); |
|
|
|
if (TextFormatterFactory.PropertyChangeAffectsTextFormatter(e.Property)) { |
|
|
|
if (TextFormatterFactory.PropertyChangeAffectsTextFormatter(e.Property)) { |
|
|
|
// first, create the new text formatter:
|
|
|
|
// first, create the new text formatter:
|
|
|
|
RecreateTextFormatter(); |
|
|
|
RecreateTextFormatter(); |
|
|
|