/// <summary>
        /// Prints the selection.
        /// </summary>
        public virtual void Print()
        {
            ILayoutControllerView ControllerView = StateView.ControllerView;

            Debug.Assert(ControllerView.PrintContext != null);
            ControllerView.UpdateLayout();

            Debug.Assert(RegionHelper.IsValid(StateView.ActualCellSize));

            ILayoutTemplateSet TemplateSet = ControllerView.TemplateSet;
            IList <IFocusFrameSelectorList> SelectorStack = StateView.GetSelectorStack();
            ILayoutDiscreteFrame            Frame         = (ILayoutDiscreteFrame)TemplateSet.PropertyToFrame(StateView.State, PropertyName, SelectorStack);

            Debug.Assert(Frame != null);

            int Value = NodeTreeHelper.GetEnumValue(StateView.State.Node, PropertyName);

            Frame.Print(ControllerView.PrintContext, Value, Point.Origin);
        }
        /// <summary>
        /// Prints the selection.
        /// </summary>
        public virtual void Print()
        {
            LayoutControllerView ControllerView = StateView.ControllerView;

            Debug.Assert(ControllerView.PrintContext != null);
            ControllerView.UpdateLayout();

            Debug.Assert(RegionHelper.IsValid(StateView.ActualCellSize));

            ILayoutTemplateSet             TemplateSet   = ControllerView.TemplateSet;
            IList <FocusFrameSelectorList> SelectorStack = StateView.GetSelectorStack();
            ILayoutTextValueFrame          Frame         = (ILayoutTextValueFrame)TemplateSet.PropertyToFrame(StateView.State, PropertyName, SelectorStack);

            Debug.Assert(Frame != null);

            string Text = NodeTreeHelper.GetString(StateView.State.Node, PropertyName);

            Debug.Assert(Text != null);

            Debug.Assert(Start <= End);
            Debug.Assert(End <= Text.Length);

            Frame.Print(ControllerView.PrintContext, Text.Substring(Start, End - Start), Point.Origin);
        }