Я бы хотел вставить элемент гиперссылки WPF в FlowDocument программным способом.
Цель состоит в том, чтобы создать кнопку на панели инструментов, которая будет выполнять прогон текста в RichTextBox и заменять его гиперссылкой.Это тот же интерфейс, который вы видите в Интернете для создания гиперссылок в вики или блогах (или в StackOverflow).
Я могу найти TextRange выделенного текста следующим образом:
TextRange tr = new TextRange(
MyRichTextBox.Selection.Start,
MyRichTextBox.Selection.End);
И я пытаюсь вставить Гиперссылку Xaml в TextRange следующим образом:
string rawXaml = "<Hyperlink xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" NavigateUri=\"http://www.google.com/\">Google Home Page</Hyperlink>";
using(MemoryStream stream = new MemoryStream())
{
StreamWriter writer = new StreamWriter(stream);
writer.Write(rawXaml);
writer.Flush();
stream.Position = 0;
if (tr.CanLoad(DataFormats.Xaml))
{
tr.Load(stream, DataFormats.Xaml);
}
}
Но я все еще, кажется, вставляю простой текст в RichTextBox.
Что я здесь не так делаю?Есть ли лучшие способы сделать то, что я пытаюсь сделать?