TextBlock 运行 背景跨度整行

TextBlock Run Background Span Whole Line

是否可以让 运行 跨越 TextBlock 的整个宽度,使背景看起来自然而不仅仅是在 运行 的文本上?

当前结果:

预期结果:

第一张图片的另一个问题是某些 Runs 之间有(不需要的)白线(在本例中为 "test" 和“1”)。我当前的代码是:

Run r = new Run("You: " + SendMessageBox.Text + "\n");
r.Background = Brushes.LightBlue;
ChatHistory.Inlines.Add(r);

Is it possible to make a run span the entire width of a TextBlock so the background looks natural and not just on the text of the run?

不,您应该为每一行添加另一个 TextBlock 元素:

TextBlock t = new TextBlock() { Text = "You: " + SendMessageBox.Text };
t.Background = Brushes.LightBlue;
ChatHistory.Children.Add(t);

ChatHistory 例如可以是 StackPanel: