我在WPF应用程序中有一个RichTextBox。我想对每行文本应用替代着色。我已将Background属性设置为所需的颜色,但由于文本长度不同,只有包含文本的部分才会获得背景颜色。如何设置属性,以便将整行设置为所需的背景颜色。
一个非优雅的解决方案是填充一些空格,但如果RichTextBox布局发生变化,则需要通过反复试验来更改代码。
有更好的方法吗?
答案 0 :(得分:0)
如果所有线条的高度相同,那么您可以将背景图形应用于RichTextBox
本身,这将产生相同的效果(根据需要设置尺寸/颜色):
<RichTexBox>
<RichTexBox.Background>
<VisualBrush TileMode="Tile" Viewport="0 0 100 100" ViewportUnits="Absolute">
<VisualBrush.Visual>
<StackPanel>
<Rectangle Width="100" Height="50" Fill="Red" />
<Rectangle Width="100" Height="50" Fill="Blue" />
</StackPanel>
</VisualBrush.Visual>
</VisualBrush>
</RichTexBox.Background>
</RichTexBox>
答案 1 :(得分:0)
尝试使用List
突出显示背景颜色的行数。当有人更改ListItem
事件中的文字时,刷新RichTextBox.TextChanged
集合(根据文本中的行数)。
<RichTextBox>
<RichTextBox.Document>
<FlowDocument>
<List>
<ListItem Background="Red" />
<ListItem Background="Green"/>
<ListItem Background="Yellow"/>
</List>
</FlowDocument>
</RichTextBox.Document>
</RichTextBox>
我认为您可以通过覆盖其样式来更改列表的项目符号外观。
答案 2 :(得分:0)
我想知道如何使用动态生成的项目来完成此工作。对于我的实际情况,我使用了额外的空格。现在,这是我的方式。