// Token: 0x06003AFD RID: 15101 RVA: 0x0010A660 File Offset: 0x00108860
 internal virtual void InsertEmbeddedUIElementVirtual(FrameworkElement embeddedElement)
 {
     Invariant.Assert(this.HasConcreteTextContainer, "Can't insert embedded object to non-TextContainer range!");
     Invariant.Assert(embeddedElement != null);
     TextRangeBase.BeginChange(this);
     try
     {
         this.Text = string.Empty;
         TextPointer textPointer = TextRangeEditTables.EnsureInsertionPosition(this.Start);
         Paragraph   paragraph   = textPointer.Paragraph;
         if (paragraph != null)
         {
             if (Paragraph.HasNoTextContent(paragraph))
             {
                 BlockUIContainer blockUIContainer = new BlockUIContainer(embeddedElement);
                 blockUIContainer.TextAlignment = TextRangeEdit.GetTextAlignmentFromHorizontalAlignment(embeddedElement.HorizontalAlignment);
                 paragraph.SiblingBlocks.InsertAfter(paragraph, blockUIContainer);
                 paragraph.SiblingBlocks.Remove(paragraph);
                 this.Select(blockUIContainer.ContentStart, blockUIContainer.ContentEnd);
             }
             else
             {
                 InlineUIContainer inlineUIContainer = new InlineUIContainer(embeddedElement);
                 TextPointer       textPointer2      = TextRangeEdit.SplitFormattingElements(this.Start, false);
                 textPointer2.InsertTextElement(inlineUIContainer);
                 this.Select(inlineUIContainer.ElementStart, inlineUIContainer.ElementEnd);
             }
         }
     }
     finally
     {
         TextRangeBase.EndChange(this);
     }
 }