예제 #1
0
        //----------------------------------------------------------------------------------------------------x
        /// <summary>Calculates the bottom position of the row.</summary>
        /// <param name="bCommitted">true: bottom position of committed rows; false: bottom position of all rows. </param>
        /// <returns>The bottom position in points (1/72 inch).</returns>
        internal Double rCalculateBottomPos(Boolean bCommitted)
        {
            Debug.Assert(!bCommitted || Object.ReferenceEquals(tlmBase.tlmRow_Committed, this));
            Double rY = 0;

            for (Int32 iCol = 0; iCol < tlmBase.al_TlmColumn.Count; iCol++)
            {
                TlmCell cell = aTlmCell[iCol];
                if (cell == null || cell.tlmColumn_Start.iIndex != iCol || cell.tlmRow_End.iIndex != iIndex)
                {
                    continue;
                }
                Double rMaxY = cell.rCalculateMaxY(bCommitted);
                rMaxY += cell.rMarginTop + cell.rMarginBottom + cell.tlmRow_Start.rPosTop;
                if (rMaxY > rY)
                {
                    rY = rMaxY;
                }
            }
            Debug.Assert(!Double.IsNaN(rY));
            return(rY);
        }