2016-12-01 3 views
0

Ich mag Text zu formatieren in einem RichTextBox wie das Folowing Beispiel:Registerkarte Format in RichTextBox

"Ein tab-Raum hier" Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text TEXT TEXT TEXT.

"Ein tab-Raum hier" 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.

"Ein Tab-Space hier" TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT.

Wenn ich den Text in Word formatiere und es in das RichTextBox-Steuerelement visuell einfüge, sehe ich "styled" in dem Format, nach dem ich suche. Sobald ich den Text eingegeben und den RichTextBox-Inhalt debuggt habe, verschwindet der Tabulatorraum am Anfang jeder Zeile.

Side Hinweis: Ich bin sehr daran interessiert, dies zu erreichen, da ich dieses Steuerelement verwenden, um es in Python-Skripts einzufügen.

Wie kann ich das vermeiden?

EDIT:

Ich habe den folgenden Code:

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

Im Debug-Modus nehme ich einen Blick auf wholeText.Text, um zu sehen, wie der Text formatiert ist (ich kann es als sehen Text/HTML oder XML-Editor). An diesem Punkt sehe ich die Tab-Spaces, die ich zuvor beschrieben habe, nicht.

+0

so Sie sagen, dass, wenn Sie es zuerst in die Rich-Text-Box einfügen, können Sie sehen, dass es die Registerkarte (richtig) hat - aber Wenn Sie auf "Senden" klicken, wird die Registerkarte/der Leerraum am Anfang gelöscht. – mmcrae

Antwort

0

die Lösung für mein Problem gefunden dies durch den Einsatz:

countOfSpaces = text.TakeWhile(c => c.Equals('\t')).Count(); 
replacedrunText = string.Concat(Enumerable.Repeat("<pre>&#9;", countOfSpaces)) + 
            text.Substring(countOfSpaces); 
replacedrunText += "</pre>";