2017-06-28 2 views
0

Ich füge programmgesteuert Textelemente zur TextBlock-Steuerung hinzu. Ich möchte, dass diese Inline-Elemente gleichmäßig verteilt sind.Abstand zwischen Inline-Elementen im WPF-Textblock

TextBlock txtblck = new TextBlock(); 
txtblck.Inlines.Add(new Run() { Text = "a"}); 
txtblck.Inlines.Add(new Run() { Text = "b"}); 
txtblck.Inlines.Add(new Run() { Text = "c"}); 

Jetzt wird es als "abc" angezeigt. Aber ich wollte als "a b c" anzeigen. Ist es möglich? Bitte hilf mir.

Auch wenn wir die Inline-Elemente in XAML hinzufügen, werden die Leerzeichen zwischen Zeichen hinzugefügt. Aber ich bekomme den Text für den Textblock nur zur Laufzeit. Daher kann ich die Inline-Elemente in XAML nicht hinzufügen.

Vielen Dank im Voraus.

Antwort

0

Der Grund, warum Leerzeichen zwischen Zeichen hinzugefügt werden, wenn Läufe in XAML hinzugefügt werden, ist here.

Um Leerzeichen in Code hinzufügen können Sie entweder mit Leerzeichen zusätzliche Run Elemente hinzufügen:

txtblck.Inlines.Add(new Run() { Text = "a"}); 
txtblck.Inlines.Add(new Run() { Text = " "}); 
txtblck.Inlines.Add(new Run() { Text = "b"}); 
txtblck.Inlines.Add(new Run() { Text = " "}); 
txtblck.Inlines.Add(new Run() { Text = "c"}); 

oder Leerzeichen anhängen direkt mit dem Text:

txtblck.Inlines.Add(new Run() { Text = "a" + " "}); 
txtblck.Inlines.Add(new Run() { Text = "b" + " "}); 
txtblck.Inlines.Add(new Run() { Text = "c" }); 
0

Sie sollten die Räume hinzufügen, wenn Sie wollen, :

TextBlock txtblck = new TextBlock(); 
txtblck.Inlines.Add(new Run() { Text = "a " }); 
txtblck.Inlines.Add(new Run() { Text = "b " }); 
txtblck.Inlines.Add(new Run() { Text = "c" }); 

Es ist nicht notwendig, zusätzlichezu erstellenElemente. Zwischen Run Elementen werden keine Leerzeichen hinzugefügt.