Как скопировать и вставить в wpf richtextbox, содержащий прогоны и inlineUICOntainer?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как скопировать и вставить в wpf richtextbox, содержащий прогоны и inlineUICOntainer?

Сообщение Anonymous »

Я создал RichTextBox в wpf, содержащий указанное ниже содержимое Чего я хочу добиться, так это

1) Скопировать выделенный текст из RichTextBox и вставить его внутрь того же RichTextBox

2) Скопируйте выделенный текст из одного RichTextBox и вставьте в другой RichTextBox в том же приложении.

3)Скопируйте выделенный текст из RichTextBox в буфер обмена как обычный текст, который затем можно вставить в приложения, такие как блокнот и т. д.
Проблема 1:

когда я печатаю обычный текст и пытаюсь скопировать все содержимое в richtextbox, InlineUIContainer не копируется.
Проблема 2:

Когда я хочу выбрать только несколько слов в целом предложении, содержащем смесь прогонов и InlineUIContainer , это одно и то же.
То, что я видел в других ответах на переполнение стека по почти похожим запросам, вы перебираете блоки, но, похоже, это не работает. Как мне вообще скопировать и вставить
Я понимаю, что прямого подхода не существует, и требуется некоторый цикл или работа с текстовыми указателями.
Я попробовал это форматировать себя с помощью CTRL+C

Код: Выделить всё

StringBuilder sb = new StringBuilder();
foreach (Block block in RichTextBox.Document.Blocks)
{
if (block is Paragraph p)
{
foreach (Inline inline in p.Inlines)
{
if (inline is Run run)
{
if (RichTextBox.Selection.Contains(run.ContentStart))
{
sb.Append(run.Text);
}
}
else if (inline is InlineUIContainer iuic)
{
if (RichTextBox.Selection.Contains(iuic.ContentStart))
{
var tb = iuic.Child as TextBlock;
sb.Append(tb.Text);
}
}
}
}
}
Приведенный выше код обнаруживает InlineUIContainer, но если я выделю некоторую часть текста в «Выполнить»,
например:

Код: Выделить всё

This is example
Если я выберу только «пример», это даст мне весь запуск «Это пример» вместо просто «пример»

Подробнее здесь: https://stackoverflow.com/questions/787 ... icontainer
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как сделать один прокрутку Richtextbox, когда прокручивается еще один Richtextbox?
    Anonymous » » в форуме C#
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Как сделать один прокрутку Richtextbox, когда прокручивается еще один Richtextbox?
    Anonymous » » в форуме C#
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Многопроцессорность Python: эффективно сохраняйте только лучшие прогоны
    Anonymous » » в форуме Python
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Как скопировать и вставить файл в Linux и вставить в окна [закрыто]
    Anonymous » » в форуме Linux
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Как скопировать и вставить окно WPF (клонировать) и не иметь ошибок
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»