【问题标题】:Is there a way to underline one character in a WPF TextBlock?有没有办法在 WPF TextBlock 中为一个字符加下划线?
【发布时间】:2011-04-22 16:48:58
【问题描述】:

有没有办法仅在 TextBlock 中的一个字符(或小于整个块的任何数量)中应用下划线文本装饰?

我有一些文本想要输出为“this worf is mispelt”,并在worf 中的f 下划线。

我知道你可以做到:

TextBlock47.TextDecorations = TextDecorations.Underline;

但我不希望整个块都加下划线。

如果做不到这一点,除了 TextBlock 之外,我还可以使用其他控件来提供此功能吗?我研究了富文本,但对于一个简单的效果来说,这似乎是一项非常艰巨的工作。如果唯一的方法,我该如何在c#代码中生成特定格式的文本(10pt,Courier New,一个字符下划线)?

【问题讨论】:

    标签: c# wpf textblock underline


    【解决方案1】:

    【讨论】:

    • 感谢您的链接,雷。我实际上并不知道这是可能的(应用程序的前一个化身使用 Java 的内联 HTML)。现在我知道了跑步,将来会容易得多。
    【解决方案2】:

    您可以在TextBlock 中使用Underline

    <TextBlock Name="textBlock47">
      this wor<Underline>f</Underline> is misspelt
    </TextBlock>
    

    textBlock47.Inlines.Add(new Run("this wor"));
    textBlock47.Inlines.Add(new Underline(new Run("f")));
    textBlock47.Inlines.Add(new Run(" is misspelt"));
    

    【讨论】:

    • 效果很好。如果下划线位于空格字符下且后面没有非空格字符,则似乎确实存在不显示下划线的问题,但我已经通过始终在末尾添加一些文本来解决此问题:实用主义胜过纯度 :-) 谢谢大家。
    • 我没有得到 的 Intellisense,但它在我正在使用的 TextBlock 内的 XAML 预览中工作。谢谢。
    猜你喜欢
    • 2019-11-02
    • 2013-10-21
    • 2016-06-08
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-01
    • 2021-01-21
    相关资源
    最近更新 更多