WPF文本块中内联元素之间的间距

时间:2017-06-28 09:29:19

标签: c# wpf textblock

我正在以编程方式将Run元素添加到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"});

现在它显示为“abc”。但我想显示为“a b c”。可能吗?请帮帮我。

当我们在XAML中添加内联元素时,会在字符之间添加空格。但是我只在运行时获取文本块的文本。所以我无法在XAML中添加内联元素。

提前致谢。

2 个答案:

答案 0 :(得分:0)

解释在XAML中添加运行时在字符之间添加空格的原因here

要在代码中添加空格,您可以添加带空格的额外Run元素:

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"});

或直接在文本中添加空格:

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

答案 1 :(得分:0)

如果需要,您应该添加空格:

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" });

无需创建任何其他Run元素。并且Run元素之间不会自动添加空格。