亲爱的stackoverflow社区!
我试图找到解决问题的方法,但我找不到任何问题。
问题:
我有一个绑定到字符串的多行文本框。每当我在字符串中添加内容时,我想更改新部件的颜色。
最后应该看起来像这样:
(你明白了)
到目前为止,这是我的文本框:
<TextBox x:Name="ChatTextBox" Text="{Binding MyStringProperty , Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" TextWrapping="Wrap"
AcceptsReturn="True"
IsReadOnly="True"></TextBox>
</ScrollViewer>
在搜索解决方案时,我看到了一些使用Inlines的示例,但对我而言,Inlines看起来不是动态的。
<TextBlock TextWrapping="Wrap">
<TextBlock.Inlines>
<Run Foreground="Blue" Text="The first line in the Textbox is blue"/>
<Run Foreground="Green" Text="then I add this part and it is green"/>
<Run Foreground="Orange" Text="and this part is orange" />
</TextBlock.Inlines>
</TextBlock>
我不一定要绑定到字符串,如果需要任何其他对象(或列表),这不会有问题。
非常感谢任何帮助!提前谢谢。
答案 0 :(得分:0)
您可以使用RichTextBox控件并使用段落和运行,检查:
<RichTextBox x:Name="richTextBox" Margin="10,128.08,0,0" HorizontalAlignment="Left" VerticalAlignment="Top">
<FlowDocument>
<Paragraph>
<Run Text="The first line in the Textbox is blue" Foreground="Blue"/>
<Run Text="{Binding Text, ElementName=textBox}" Foreground="Brown"/>
</Paragraph>
<Paragraph>
<Run Text="then I add this part and it is green" Foreground="Green"/>
</Paragraph>
<Paragraph>
<Run Text="and this part is orange" Foreground="Orange"/>
</Paragraph>
</FlowDocument>
</RichTextBox>