private InlineObjectElementWithText ConstructElements4Printing(int offset, InlineObjectElement mainUIElement)
        {
            Debug.Assert(mainUIElement != null);

            InlineObjectElementWithText inlineObject = new InlineObjectElementWithText(mainUIElement.DocumentLength, mainUIElement.Element);

            var line = Document.GetLineByOffset(offset);

            inlineObject.LeadingText  = GetLeadingText(Document, line, offset);
            inlineObject.TrailingText = GetTrailingText(Document, line, offset, mainUIElement.DocumentLength);

            return(inlineObject);
        }
示例#2
0
        /// <summary>
        /// Add Run elements, if available, to paragrapsh
        /// Added by: [email protected]
        /// </summary>
        /// <param name="visualLineElementGenerators"></param>
        /// <param name="p"></param>
        /// <param name="line"></param>
        /// <returns>true if Run elements added</returns>
        private static bool AddVisualLineElements(List <VisualLineElementGenerator> visualLineElementGenerators, Paragraph p, IDocumentLine line)
        {
            InlineObjectElementWithText inlineObject = GetVisualLineElement(visualLineElementGenerators, line);

            if (inlineObject == null)
            {
                return(false);
            }

            // Leading text
            if (inlineObject.LeadingText != null)
            {
                p.Inlines.Add(inlineObject.LeadingText);
            }
            // UIElement
            p.Inlines.Add(inlineObject.Element);
            // Trailing text
            if (inlineObject.TrailingText != null)
            {
                p.Inlines.Add(inlineObject.TrailingText);
            }

            return(true);
        }