/// <summary>
        /// Prints a discrete value created with this frame.
        /// The value is provided explicitely.
        /// </summary>
        /// <param name="printContext">The context used to print the cell.</param>
        /// <param name="value">The value to print.</param>
        /// <param name="origin">The location where to start printing.</param>
        public virtual void Print(ILayoutPrintContext printContext, int value, Point origin)
        {
            Debug.Assert(value >= 0 && value < Items.Count);

            ILayoutKeywordFrame KeywordFrame = Items[value];

            Debug.Assert(KeywordFrame != null);

            KeywordFrame.Print(printContext, origin);
        }
        /// <summary>
        /// Prints a cell created with this frame.
        /// </summary>
        /// <param name="printContext">The context used to print the cell.</param>
        /// <param name="cellView">The cell to print.</param>
        /// <param name="origin">The location where to start printing.</param>
        /// <param name="size">The printing size, padding included.</param>
        /// <param name="padding">The padding to use when printing.</param>
        public virtual void Print(ILayoutPrintContext printContext, ILayoutCellView cellView, Point origin, Size size, Padding padding)
        {
            ILayoutDiscreteContentFocusableCellView DiscreteContentFocusableCellView = cellView as ILayoutDiscreteContentFocusableCellView;

            Debug.Assert(DiscreteContentFocusableCellView != null);

            ILayoutKeywordFrame KeywordFrame = DiscreteContentFocusableCellView.KeywordFrame;

            Debug.Assert(KeywordFrame != null);

            KeywordFrame.Print(printContext, DiscreteContentFocusableCellView, origin, size, padding);
        }