c# - 如何使超链接文本不可编辑(如标签)
问题描述
我使用以下代码将超链接添加到 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;
}
解决方案
欢迎来到 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);