Browse Source

Fix TextBlock constraint not getting initialized.

pull/12/merge
Steven Kirk 12 years ago
parent
commit
d2d94da177
  1. 4
      Perspex.Controls/Presenters/ScrollContentPresenter.cs
  2. 5
      Perspex.Controls/Presenters/TextPresenter.cs
  3. 7
      Perspex.Controls/TextBlock.cs

4
Perspex.Controls/Presenters/ScrollContentPresenter.cs

@ -124,21 +124,25 @@ namespace Perspex.Controls.Presenters
if (rect.Bottom > offset.Y + this.Viewport.Height)
{
offset = offset.WithY(rect.Bottom - this.Viewport.Height);
e.Handled = true;
}
if (rect.Y < offset.Y)
{
offset = offset.WithY(rect.Y);
e.Handled = true;
}
if (rect.Right > offset.X + this.Viewport.Width)
{
offset = offset.WithX(rect.Right - this.Viewport.Width);
e.Handled = true;
}
if (rect.X < offset.X)
{
offset = offset.WithX(rect.X);
e.Handled = true;
}
this.Offset = offset;

5
Perspex.Controls/Presenters/TextPresenter.cs

@ -92,11 +92,6 @@ namespace Perspex.Controls
set { this.SetValue(SelectionEndProperty, value); }
}
public new FormattedText FormattedText
{
get { return base.FormattedText; }
}
public int GetCaretIndex(Point point)
{
var hit = this.FormattedText.HitTestPoint(point);

7
Perspex.Controls/TextBlock.cs

@ -35,6 +35,8 @@ namespace Perspex.Controls
private FormattedText formattedText;
private Size constraint;
public TextBlock()
{
Observable.Merge(
@ -104,17 +106,20 @@ namespace Perspex.Controls
protected virtual FormattedText CreateFormattedText()
{
return new FormattedText(
var result = new FormattedText(
this.Text,
this.FontFamily,
this.FontSize,
this.FontStyle);
result.Constraint = constraint;
return result;
}
protected void InvalidateFormattedText()
{
if (this.formattedText != null)
{
this.constraint = this.formattedText.Constraint;
this.formattedText.Dispose();
this.formattedText = null;
}

Loading…
Cancel
Save