首页 > 解决方案 > 如何使超链接文本不可编辑(如标签)

问题描述

我使用以下代码将超链接添加到 RichTextBox。但是,我不想让用户在插入超链接名称后更改它。我想让超链接不可编辑。因此,当用户尝试编辑它时,我想删除超链接或将其转换为纯文本。

    protected void AddHyperlink(string linkURL, string linkName) {
      Paragraph para = new Paragraph();

      Hyperlink link = new Hyperlink(new Run(""), rtb.CaretPosition);
      link.IsEnabled = true;
      link.Inlines.Add(linkName);
      link.Tag = "supername";
      link.NavigateUri = new Uri(linkURL);
      link.RequestNavigate += Link_RequestNavigate;
      link.TextDecorations = null;
    }

在此处输入图像描述

标签: c#wpfhyperlinkreadonlyrichtext

解决方案


欢迎来到 SO!

尝试将超链接包装在标签中:

Paragraph para = new Paragraph();

Hyperlink link = new Hyperlink();
link.IsEnabled = true;
link.Inlines.Add(linkName);
link.NavigateUri = new Uri(linkURL);
link.RequestNavigate += Link_RequestNavigate;

var label = new Label { Content = link, Padding=new Thickness(0) };
para.Inlines.Add(label);

rtb.Document.Blocks.Add(para);

推荐阅读