WPF Обрабатывать ссылки внутри FlowDocument - PullRequest
1 голос
/ 02 апреля 2009

Я создаю простое словарное приложение с использованием WPF.

Я использую шаблон MVVM, привязку данных и FlowDocument для отображения слов пользователю.

Пользовательский интерфейс состоит из 2 элементов управления: ListBox и FlowDocumentScrollViewer.

Данные словаря поступают из файла XML, формат этой строки может выглядеть следующим образом

<b>Word</b> - Some description. Another <i>description</i>. Reference <ref id="123">related word</ref>

Порядок HTML и ссылочных элементов не определен.

Я анализирую строку HTML, превращаю ее в XAML, затем из XAML создаю объект FlowDocument и связываю его со свойством Document элемента управления FlowDocumentScrollViewer.

Проблема возникает, когда мне нужно ссылку исх. элементы. (мое требование заключается в том, что когда пользователь нажимает на ссылку ссылки, упомянутое слово выбирается в элементе управления ListBox и отображается в FlowDocumentScrollViewer)

У меня вопрос, есть ли способ динамически создавать элементы управления в стиле «гиперссылки» (с прикрепленными событием или командами), которые бы переводили пользователя на упомянутое слово в словаре.

Можно ли вообще решить эту проблему?

1 Ответ

1 голос
/ 03 апреля 2009

Существует текстовый элемент Гиперссылка, который имеет свойство Command и событие Click. Он ведет себя как кнопка, но используется внутри FlowDocuments. Вы можете использовать любой метод, чтобы добиться того, что вам нужно, но я предпочитаю Команды. Особенно, если вы реализуете это, используя шаблон MVVM, как вы отметили ...

...