Как я могу получить весь текстовый контент из абзаца (System.Windows.Documents)?

Я думаю, что название вопроса самоочевидно. Я добавил несколько строк через ParagraphControl.Inlines.Add(SomeStringValue) и я получаю некоторые проблемы при получении текстового содержимого. Любой совет?

Я пытался получить текст из Inline сам, а затем сгладить коллекцию строк с помощью String.Join()

1 ответ

Мне наконец удалось этого добиться.

Text = String.Join(String.Empty, ParagraphControl.Inlines.Select(line => line.ContentStart.GetTextInRun(LogicalDirection.Forward)));

Вот метод расширения, который я использую. АParagraph это TextElement, как и некоторые другие вещи в System.Windows.Document.

public static string GetText(this TextElement textElement)
{
    return new TextRange(textElement.ContentStart, textElement.ContentEnd).Text;
}

См. Также https://docs.microsoft.com/en-us/dotnet/framework/wpf/controls/how-to-extract-the-text-content-from-a-richtextbox

Другие вопросы по тегам