/// <summary>
        ///     Applies vertical alignment to the linebox
        /// </summary>
        /// <param name="g"></param>
        /// <param name="lineBox"></param>
        private static void ApplyVerticalAlignment(Graphics g, LineBox lineBox)
        {
            var isTableCell = lineBox.OwnerBox.Display == Constants.TableCell;
            var baseline = lineBox.GetMaxWordBottom() - GetDescent(lineBox.OwnerBox.ActualFont) - 2;
            var boxes = new List<Box>(lineBox.Rectangles.Keys);

            foreach (var b in boxes)
            {
                var ascent = GetAscent(b.ActualFont);
                var descent = GetDescent(b.ActualFont);

                //Important notes on http://www.w3.org/TR/CSS21/tables.html#height-layout
                switch (b.VerticalAlign)
                {
                    case Constants.Sub:
                        lineBox.SetBaseLine(g, b, baseline + lineBox.Rectangles[b].Height*.2f);
                        break;
                    case Constants.Super:
                        lineBox.SetBaseLine(g, b, baseline - lineBox.Rectangles[b].Height*.2f);
                        break;
                    case Constants.TextTop:

                        break;
                    case Constants.TextBottom:

                        break;
                    case Constants.Top:

                        break;
                    case Constants.Bottom:

                        break;
                    case Constants.Middle:

                        break;
                    default:
                        //case: baseline
                        lineBox.SetBaseLine(g, b, baseline);
                        break;
                }

                ////Graphic cues
                //g.FillRectangle(Brushes.Aqua, r.Left, r.Top, r.Width, ascent);
                //g.FillRectangle(Brushes.Yellow, r.Left, r.Top + ascent, r.Width, descent);
                //g.DrawLine(Pens.Fuchsia, r.Left, baseline, r.Right, baseline);
            }
        }