如何在 RTF 格式的富文本框中插入超链接
How to insert hyperlinks in Rich Text Box in RTF format
我正在尝试在 WinForms(使用 .NET Framework 4.6.1)中插入指向富文本框的超链接。
我这样做的方式是要求插入 URL 和文本,然后将其附加到 rtb(我知道用选定的文本来做可能更好,然后只要求 URL).
但是当我尝试附加 RTF 时,就好像根本没有附加一样。我附加它的方式如下:
string rtf = $"{{\field{{\*\fldinst HYPERLINK \"{url}\"}}{{\fldrslt {urlText}}}}}";
richTb.Rtf += rtf;
我也尝试过附加到 richTb.SelectionRtf
,但我得到了相同的结果。我错过了什么吗??
对于 WinForms 你可以尝试使用 LinkLabel
LinkLabel link = new LinkLabel();
link.Text = "Microsoft";
LinkLabel.Link data = new LinkLabel.Link();
data.LinkData = "https://www.microsoft.com/";
link.Links.Add(data);
link.Location = richTextBox1.GetPositionFromCharIndex(richTextBox1.TextLength);
richTextBox1.Controls.Add(link);
对于 WPF 你必须插入像 Hyperlink 这样的超链接而不是像文本:
Paragraph parx = new Paragraph();
Run run1 = new Run("Text preceeding the hyperlink.");
Run run2 = new Run("Text following the hyperlink.");
Run run3 = new Run("Link Text.");
Hyperlink hyperl = new Hyperlink(run3);
hyperl.NavigateUri = new Uri("http://search.msn.com");
parx.Inlines.Add(run1);
parx.Inlines.Add(hyperl);
parx.Inlines.Add(run2);
向 RichTextBox 添加一个段落应该如下所示
richTextBox1.IsDocumentEnabled = true;
richTextBox1.Document.Blocks.Add(parx);
我正在尝试在 WinForms(使用 .NET Framework 4.6.1)中插入指向富文本框的超链接。 我这样做的方式是要求插入 URL 和文本,然后将其附加到 rtb(我知道用选定的文本来做可能更好,然后只要求 URL).
但是当我尝试附加 RTF 时,就好像根本没有附加一样。我附加它的方式如下:
string rtf = $"{{\field{{\*\fldinst HYPERLINK \"{url}\"}}{{\fldrslt {urlText}}}}}";
richTb.Rtf += rtf;
我也尝试过附加到 richTb.SelectionRtf
,但我得到了相同的结果。我错过了什么吗??
对于 WinForms 你可以尝试使用 LinkLabel
LinkLabel link = new LinkLabel();
link.Text = "Microsoft";
LinkLabel.Link data = new LinkLabel.Link();
data.LinkData = "https://www.microsoft.com/";
link.Links.Add(data);
link.Location = richTextBox1.GetPositionFromCharIndex(richTextBox1.TextLength);
richTextBox1.Controls.Add(link);
对于 WPF 你必须插入像 Hyperlink 这样的超链接而不是像文本:
Paragraph parx = new Paragraph();
Run run1 = new Run("Text preceeding the hyperlink.");
Run run2 = new Run("Text following the hyperlink.");
Run run3 = new Run("Link Text.");
Hyperlink hyperl = new Hyperlink(run3);
hyperl.NavigateUri = new Uri("http://search.msn.com");
parx.Inlines.Add(run1);
parx.Inlines.Add(hyperl);
parx.Inlines.Add(run2);
向 RichTextBox 添加一个段落应该如下所示
richTextBox1.IsDocumentEnabled = true;
richTextBox1.Document.Blocks.Add(parx);