2016-12-01 2 views
0

Я хочу форматировать текст в RichTextBox, как на следующие, например:Формат в RichTextBox

"Лапка-пространство здесь" TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT ТЕКСТ ТЕКСТ ТЕКСТ.

"Лапка-пространство здесь" TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT ТЕКСТ.

«Табл-пространство здесь» ТЕКСТ ТЕКСТ ТЕКСТ ТЕКСТ ТЕКСТ ТЕКСТ ТЕКСТ ТЕКСТ ТЕКСТ ТЕКСТ ТЕКСТ ТЕКСТ ТЕКСТ.

Если я отформатирую текст в слове и вставляю его в элемент управления RichTextBox визуально, я вижу «стиль» в том формате, который я ищу. Когда я отправляю текст и отлаживаю содержимое RichTextBox, пространство табуляции в начале каждой строки исчезает.

Боковое примечание: Я очень заинтересован в достижении этого, так как я использую этот элемент управления для вставки в него скриптов python.

Как я могу избежать этого?

EDIT:

У меня есть следующий код:

var html = string.Empty; 
var wholeText = new TextRange(block.ContentStart, block.ContentEnd); 
html += wholeText.Text; 

В режиме отладки я взглянуть на wholeText.Text, чтобы увидеть, как отформатирован текст (я могу видеть его как text/html или xml editor). На этом этапе я не вижу табуляции, которые я описал ранее.

+0

так что вы хотите сказать, что, когда вы впервые вставить его в Rich Text Box, вы можете увидеть, что он имеет вкладку (правильно) - но когда вы нажимаете кнопку «Отправить», она теряет эту вкладку/белое пространство в начале? – mmcrae

ответ

0

Найдено решение моей проблемы с помощью этого:

countOfSpaces = text.TakeWhile(c => c.Equals('\t')).Count(); 
replacedrunText = string.Concat(Enumerable.Repeat("<pre>&#9;", countOfSpaces)) + 
            text.Substring(countOfSpaces); 
replacedrunText += "</pre>"; 
Смежные вопросы