我需要显示一串文字。我目前在文本框中显示它。
我的要求已经改变,现在我需要以红色显示此字符串的部分内容。
我看过,我可以看到以多种颜色显示文本的所有内容都是WebBrowser或RichTextbox。这两个都比我希望使用的更复杂。
我可以以任何方式格式化文本字符串(使用任何类型的标记)。
对于wpf是否有某种简单的标记控制?(注意:这将在一个数据网格上进行,可能有数百行,因此它不能是内存/处理密集型控制。)
答案 0 :(得分:2)
如果不需要编辑,您可以使用TextBlock。
从上面链接:
TextBlock设计为轻量级,专门用于将流内容的一小部分集成到用户界面(UI)中。 TextBlock针对单行显示进行了优化,并为显示多行内容提供了良好的性能。
TextBlock未针对需要显示多行内容的方案进行优化;对于这样的场景,在性能方面,FlowDocument与适当的查看控件相结合是比TextBlock更好的选择。在TextBlock之后,FlowDocumentScrollViewer是用于显示流内容的下一个最轻量级控件,并且简单地提供具有最小UI的滚动内容区域。 FlowDocumentPageViewer针对流内容的“一次一页”查看模式进行了优化。最后,FlowDocumentReader支持用于查看流内容的最丰富的集合功能,但相应地更重。
来自显示红色文字的链接的修改示例:
<Grid>
<TextBlock TextWrapping="Wrap" >
<Bold>TextBlock</Bold> is designed to be <Italic>lightweight</Italic>
and is geared <Run Foreground="Red">specifically</Run> at integrating
<Italic>small</Italic> portions of flow content into a UI.
</TextBlock>
</Grid>
答案 1 :(得分:0)
AvalonEdit应该做你想要的。有一个Nuget包。另见:
http://www.codeproject.com/Articles/42490/Using-AvalonEdit-WPF-Text-Editor
此外,如果文本没有被编辑,我认为您应该使用像ListBox这样的自定义项模板 - 特别是如果要突出显示整行。