【问题标题】:In WPF RichTextBox, does overriding of Underline/Strikethrough work?在 WPF RichTextBox 中,覆盖下划线/删除线是否有效?
【发布时间】:2011-02-02 23:16:39
【问题描述】:

在 WPF RichTextBox 中,文本 Run 的有效样式是将 Run 上定义的属性与它从封闭的 Paragraph“继承”的属性结合起来的结果,最后是样式在Document。因此,您可以在任何级别将FontWeight 设置为Bold。您也可以在Paragraph 上设置Bold,然后将其切换为Normal(覆盖它)以获得特定的Run

但是,下划线和删除线是不同的。它们是可以选择出现在TextDecorations 列表中的项目,这是Inline(因此是Run)和Paragraph 的属性,但不是Document 的属性。您可以在Paragraph 中打开Underline,它会被继承,因此Paragraph 默认值中的所有Runs 默认显示为下划线。

是否可以在特定的Run 中将其关闭下划线?即有没有办法在TextDecorations 的列表中插入一个条目,这意味着“不要下划线”,从而覆盖Paragraph 的设置?

【问题讨论】:

    标签: wpf richtextbox underline


    【解决方案1】:

    我知道你基本上可以这样处理下划线:

    protected void ContinueRoutingCommand(object sender, CanExecuteRoutedEventArgs e)
    {
                else if (e.Command == EditingCommands.ToggleUnderline)
                {
                    e.Handled = true;
                    e.CanExecute = true;
                    e.ContinueRouting = false;
                    return;
                }
    }
    

    但是,在您的情况下,您只想在特定的 Run 中覆盖它,对吗?然后,您可以在内部 if 中验证您的 Run 并根据需要完全像这样阻止它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-10-14
      • 2011-03-22
      • 2014-09-26
      • 1970-01-01
      • 2018-07-14
      • 2016-08-26
      • 2017-03-23
      • 2010-09-16
      相关资源
      最近更新 更多