|
|
@@ -75,6 +75,9 @@ namespace Avalonia.Controls.Presenters
|
|
|
static TextPresenter()
|
|
|
{
|
|
|
AffectsRender<TextPresenter>(SelectionBrushProperty);
|
|
|
+ AffectsMeasure<TextPresenter>(TextProperty, PasswordCharProperty,
|
|
|
+ TextAlignmentProperty, TextWrappingProperty, TextBlock.FontSizeProperty,
|
|
|
+ TextBlock.FontStyleProperty, TextBlock.FontWeightProperty, TextBlock.FontFamilyProperty);
|
|
|
|
|
|
Observable.Merge(TextProperty.Changed, TextBlock.ForegroundProperty.Changed,
|
|
|
TextAlignmentProperty.Changed, TextWrappingProperty.Changed,
|
|
|
@@ -284,8 +287,6 @@ namespace Avalonia.Controls.Presenters
|
|
|
protected void InvalidateFormattedText()
|
|
|
{
|
|
|
_formattedText = null;
|
|
|
-
|
|
|
- InvalidateMeasure();
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
|
@@ -301,13 +302,15 @@ namespace Avalonia.Controls.Presenters
|
|
|
context.FillRectangle(background, new Rect(Bounds.Size));
|
|
|
}
|
|
|
|
|
|
- FormattedText.Constraint = Bounds.Size;
|
|
|
-
|
|
|
context.DrawText(Foreground, new Point(), FormattedText);
|
|
|
}
|
|
|
|
|
|
public override void Render(DrawingContext context)
|
|
|
{
|
|
|
+ FormattedText.Constraint = Bounds.Size;
|
|
|
+
|
|
|
+ _constraint = Bounds.Size;
|
|
|
+
|
|
|
var selectionStart = SelectionStart;
|
|
|
var selectionEnd = SelectionEnd;
|
|
|
|
|
|
@@ -316,10 +319,6 @@ namespace Avalonia.Controls.Presenters
|
|
|
var start = Math.Min(selectionStart, selectionEnd);
|
|
|
var length = Math.Max(selectionStart, selectionEnd) - start;
|
|
|
|
|
|
- // issue #600: set constraint before any FormattedText manipulation
|
|
|
- // see base.Render(...) implementation
|
|
|
- FormattedText.Constraint = _constraint;
|
|
|
-
|
|
|
var rects = FormattedText.HitTestTextRange(start, length);
|
|
|
|
|
|
foreach (var rect in rects)
|