/// <summary>
/// レイアウト行をすべて破棄し、再度レイアウトを行う
/// </summary>
- public void PerformLayout()
+ /// <param name="quick">真の場合、レイアウトキャッシュのみ再構築します</param>
+ public void PerformLayout(bool quick = true)
{
- this.LayoutLines.IsFrozneDirtyFlag = true;
- this.FireUpdate(new DocumentUpdateEventArgs(UpdateType.RebuildLayout, -1, -1, -1));
- this.LayoutLines.IsFrozneDirtyFlag = false;
+ if (quick)
+ {
+ this.LayoutLines.ClearLayoutCache();
+ }
+ else
+ {
+ this.LayoutLines.IsFrozneDirtyFlag = true;
+ this.FireUpdate(new DocumentUpdateEventArgs(UpdateType.RebuildLayout, -1, -1, -1));
+ this.LayoutLines.IsFrozneDirtyFlag = false;
+ }
if (this.PerformLayouted != null)
this.PerformLayouted(this, null);
}
}
finally
{
- this.PerformLayout();
+ this.PerformLayout(false);
if (this.LoadProgress != null)
this.LoadProgress(this, new ProgressEventArgs(ProgressState.Complete));
}