TextBlock运行背景跨度整行

时间:2019-04-09 01:42:50

标签: c# .net wpf textblock

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

当前结果: The Background only spans the length of the text.

预期结果: The Background spans the entire textbox.

第一个图像的另一个问题是,某些Runs(在这种情况下为“ test”和“ 1”)之间有(不需要的)白线。我当前的代码是:

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

1 个答案:

答案 0 :(得分:1)

  

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

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

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

ChatHistory例如可以是StackPanel