本文整理汇总了C#中Status.laidOutNone方法的典型用法代码示例。如果您正苦于以下问题:C# Status.laidOutNone方法的具体用法?C# Status.laidOutNone怎么用?C# Status.laidOutNone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Status
的用法示例。
在下文中一共展示了Status.laidOutNone方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Layout
public virtual Status Layout(Area area, Region region)
{
if (this.marker == MarkerStart)
{
this.marker = 0;
}
BodyAreaContainer bac = (BodyAreaContainer)area;
bool prevChildMustKeepWithNext = false;
ArrayList pageMarker = this.getMarkerSnapshot(new ArrayList());
int numChildren = this.children.Count;
if (numChildren == 0)
{
throw new FonetException("fo:flow must contain block-level children");
}
for (int i = this.marker; i < numChildren; i++)
{
FObj fo = (FObj)children[i];
if (bac.isBalancingRequired(fo))
{
bac.resetSpanArea();
this.Rollback(markerSnapshot);
i = this.marker - 1;
continue;
}
Area currentArea = bac.getNextArea(fo);
currentArea.setIDReferences(bac.getIDReferences());
if (bac.isNewSpanArea())
{
this.marker = i;
markerSnapshot = this.getMarkerSnapshot(new ArrayList());
}
SetContentWidth(currentArea.getContentWidth());
_status = fo.Layout(currentArea);
if (_status.isIncomplete())
{
if ((prevChildMustKeepWithNext) && (_status.laidOutNone()))
{
this.marker = i - 1;
FObj prevChild = (FObj)children[this.marker];
prevChild.RemoveAreas();
prevChild.ResetMarker();
prevChild.RemoveID(area.getIDReferences());
_status = new Status(Status.AREA_FULL_SOME);
return _status;
}
if (bac.isLastColumn())
{
if (_status.getCode() == Status.FORCE_COLUMN_BREAK)
{
this.marker = i;
_status =
new Status(Status.FORCE_PAGE_BREAK);
return _status;
}
else
{
this.marker = i;
return _status;
}
}
else
{
if (_status.isPageBreak())
{
this.marker = i;
return _status;
}
((ColumnArea)currentArea).incrementSpanIndex();
i--;
}
}
if (_status.getCode() == Status.KEEP_WITH_NEXT)
{
prevChildMustKeepWithNext = true;
}
else
{
prevChildMustKeepWithNext = false;
}
}
return _status;
}