WPF标记控制

时间:2014-09-17 01:21:18

标签: wpf markup

我需要显示一串文字。我目前在文本框中显示它。

我的要求已经改变,现在我需要以红色显示此字符串的部分内容。

我看过,我可以看到以多种颜色显示文本的所有内容都是WebBrowser或RichTextbox。这两个都比我希望使用的更复杂。

我可以以任何方式格式化文本字符串(使用任何类型的标记)。

对于wpf是否有某种简单的标记控制?(注意:这将在一个数据网格上进行,可能有数百行,因此它不能是内存/处理密集型控制。)

2 个答案:

答案 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>

enter image description here

答案 1 :(得分:0)

AvalonEdit应该做你想要的。有一个Nuget包。另见:

http://www.codeproject.com/Articles/42490/Using-AvalonEdit-WPF-Text-Editor

此外,如果文本没有被编辑,我认为您应该使用像ListBox这样的自定义项模板 - 特别是如果要突出显示整行。