【问题标题】:WPF - Drawing a line of text with different background colorsWPF - 用不同的背景颜色绘制一行文本
【发布时间】:2011-03-11 14:54:21
【问题描述】:

我需要为 WPF 中的部分字符串(即高亮)绘制一行具有不同背景的文本。 FomattedText 类允许您为字符串的不同部分设置各种属性,如粗体、下划线前景色等,但没有背景色。我认为使用 TextFormatter 并编写自定义 TextSource 就可以完成这项工作,但它似乎是一种相当重量级的方式来做一些非常简单的事情。还有其他方法吗?

【问题讨论】:

    标签: .net wpf .net-3.5 wpf-controls


    【解决方案1】:

    您可以通过使用具有多个 Inline 子级的基本 TextBlock 并为它们分配不同的背景颜色来做到这一点。这是 XAML 中的一个简单示例:

    <TextBlock>
        <Run Background="Blue">Foo</Run>
        <Run Background="Red">Bar</Run>
    </TextBlock>
    

    请注意,没有模板的 ContentPresenter 会自动将 Inline 对象包装在 TextBlock 中,因此您只需将 ContentControl 的 Content 属性绑定到 Span。有关将数据绑定到内联的建议,请参阅 this StackOverflow question

    如果您希望用户可以编辑文本,那么您应该查看RichTextBox

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-21
      • 1970-01-01
      • 2019-11-26
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      相关资源
      最近更新 更多