В нашем VSTO Word 2010 Addin мы пытаемся вставить RichTextControl после заданного другого ContentControl. Мы попытались это:Вставка ContentControl после другого ContentControl
public ContentControl AddContentControl(WdContentControlType type, int position)
{
Paragraph paragraphBefore = null;
if (position == 0)
{
if (WordDocument.Paragraphs.Count == 0)
{
WordDocument.Paragraphs.Add();
}
paragraphBefore = WordDocument.Paragraphs.First;
}
else
{
paragraphBefore = Controls.ElementAt(position - 1).Range.Paragraphs.Last;
}
object start = paragraphBefore.Range.End;
object end = paragraphBefore.Range.End + 1;
paragraphBefore.Range.InsertParagraphAfter();
Range rangeToUse = WordDocument.Range(ref start, ref end);
ContentControl newControl = _ContentControl = _WordDocument.ContentControls.Add(type, rangeToInsert);
Controls.Insert(position, newControl);
OnNewContentControl(newControl, position);
return newControl.ContentControl;
}
, который прекрасно работает, если элемент управления, который находится перед той, которую мы хотим вставить не имеет пустой абзац в конце. Если это так, новый ContentControl вставлен в последний элемент управления.
Как мы можем избежать этого?