Я хочу создать FlowDocument, который содержит как пользовательский контент, так и гиперссылки для манипулирования этим контентом. Я хочу, чтобы пользователь мог выделить содержимое мышью и скопировать его в буфер обмена. Есть ли способ разрешить это, не позволяя пользователю выделять и копировать гиперссылки?
(Обратите внимание, что пользователь не будет редактировать этот FlowDocument напрямую - это просто отличное средство отображения контента, который он вводил в другом месте.)
Например:
<FlowDocumentScrollViewer>
<FlowDocument>
<Paragraph>
Blah blah blah blah, blah blah blah -- blah blah blah blah blah blah.
Blah, blah blah Blah blah blah, blah blah blah blah-blah blah.
(<Hyperlink>Edit</Hyperlink> - <Hyperlink>Delete</Hyperlink>
</Paragraph>
</FlowDocument>
</FlowDocumentScrollViewer>
Пользователь может использовать мышь, чтобы выделить текст «Версия 1.0» и скопировать его в буфер обмена. Это хорошо. Однако они также могут выделять гиперссылки и копировать их. Я бы предпочел этого избежать по двум причинам:
- Гиперссылки на самом деле не являются частью контента, так что же они хорошего в буфере обмена или в другой программе?
- Я также ожидаю, что в форме будут другие гиперссылки, которые не являются частью FlowDocument, и для некоторых гиперссылок будет плохой вид, чтобы их можно было выделить, а другие - нет.
Мне нравится, когда эти гиперссылки переносятся по словам в абзаце и всегда отображаются справа от последней строки переносимого текста. Насколько я знаю, это означает, что они должны быть частью FlowDocument. Но это всего лишь артефакт макета - я был бы так же рад, если бы они были снаружи, если бы я мог получить тот же макет. Я не хочу, чтобы гиперссылки были выделенными, равно как и кнопки ОК и Отмена, чтобы выделить их. Есть ли способ сделать это?