RichTextBox (WPF) не имеет строкового свойства «Текст»

Я пытаюсь установить / получить текст моего RichTextBox, но текст не входит в список его свойств, когда я хочу получить test.Text …

Я использую код в C # (.net framework 3.5 SP1)

RichTextBox test = new RichTextBox(); 

не может быть test.Text(?)

Вы знаете, как это возможно?

для установки текста RichTextBox:

 richTextBox1.Document.Blocks.Clear(); richTextBox1.Document.Blocks.Add(new Paragraph(new Run("Text"))); 

для получения текста RichTextBox:

 string richText = new TextRange(richTextBox1.Document.ContentStart, richTextBox1.Document.ContentEnd).Text; 

Существовала путаница между RichTextBox в System.Windows.Forms и в System.Windows.Control

Я использую один в элементе управления, поскольку я использую WPF. Там нет свойства Text, и для того, чтобы получить текст, я должен был использовать эту строку:

 string myText = new TextRange(transcriberArea.Document.ContentStart, transcriberArea.Document.ContentEnd).Text; 

благодаря

WPF RichTextBox имеет свойство Document для настройки содержимого a la MSDN:

 // Create a FlowDocument to contain content for the RichTextBox. FlowDocument myFlowDoc = new FlowDocument(); // Add paragraphs to the FlowDocument. myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 1"))); myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 2"))); myFlowDoc.Blocks.Add(new Paragraph(new Run("Paragraph 3"))); RichTextBox myRichTextBox = new RichTextBox(); // Add initial content to the RichTextBox. myRichTextBox.Document = myFlowDoc; 

Вы можете просто использовать метод AppendText хотя если это все, что вам нужно.

Надеюсь, это поможет.

 string GetString(RichTextBox rtb) { var textRange = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd); return textRange.Text; } 

В элементе управления WPT RichTextBox нет свойства Text . Вот один из способов получить весь текст:

 TextRange range = new TextRange(myRTB.Document.ContentStart, myRTB.Document.ContentEnd); string allText = range.Text; 
 RichTextBox rtf = new RichTextBox(); System.IO.MemoryStream stream = new System.IO.MemoryStream(ASCIIEncoding.Default.GetBytes(yourText)); rtf.Selection.Load(stream, DataFormats.Rtf); 

ИЛИ

 rtf.Selection.Text = yourText; 

Используя два метода расширения, это становится очень простым:

 public static class Ext { public static void SetText(this RichTextBox richTextBox, string text) { richTextBox.Document.Blocks.Clear(); richTextBox.Document.Blocks.Add(new Paragraph(new Run(text))); } public static string GetText(this RichTextBox richTextBox) { return new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd).Text; } } 

Как насчет того, чтобы делать следующее:

 _richTextBox.SelectAll(); string myText = _richTextBox.Selection.Text; 

«Extended WPF Toolkit» теперь предоставляет richtextbox с свойством Text.

Вы можете получить или установить текст в разных форматах (XAML, RTF и открытый текст).

Вот ссылка: Extended WPF Toolkit RichTextBox

В моем случае мне пришлось превратить RTF-текст в обычный текст: что я сделал (используя Xceed WPF Toolkit), как в ответе GiangLP; и установка моего кода в методе расширения:

 public static string RTFToPlainText(this string s) { // for information : default Xceed.Wpf.Toolkit.RichTextBox formatter is RtfFormatter Xceed.Wpf.Toolkit.RichTextBox rtBox = new Xceed.Wpf.Toolkit.RichTextBox(new System.Windows.Documents.FlowDocument()); rtBox.Text = s; rtBox.TextFormatter = new Xceed.Wpf.Toolkit.PlainTextFormatter(); return rtBox.Text; } 

В соответствии с этим он имеет свойство Text

http://msdn.microsoft.com/en-us/library/system.windows.forms.richtextbox_members.aspx

Вы также можете попробовать свойство «Линии», если хотите, чтобы текст разбился как строки.

  • Задайте элемент Focus в ListView WPF
  • Изображение кнопки мыши WPF
  • Установите надстрочный индекс и индекс в форматированном тексте в wpf
  • Принудительное рендеринг элемента управления WPF в памяти
  • Interesting Posts

    В чем разница между «Normal Reload», «Hard Reload» и «Empty Cache and Hard Reload» в Chrome?

    Блоки питания USB посылают сигналы, указывающие уровень подачи энергии?

    Как динамически добавлять строки в таблицу

    Мой диск Western Digital 500GB Passport говорит «не отформатирован», когда я подключаю его в Windows

    Написание виртуального принтера в .NET

    Установка и получение переменных окружения Windows из командной строки?

    Как изолировать поврежденные сектора на жестком диске в Windows 7?

    Как управлять запуском программ в Windows 8?

    Динамическое преобразование параметров в вариативные функции

    Подписанный вами отпечаток пальца уже используется другим клиентом OAuth2 для Android

    Могу ли я установить дополнительный языковой пакет на Microsoft Surface?

    Как удалить определенные строки в Notepad ++?

    Как использовать событие DataReceived объекта SerialPort Port в C #?

    Как создать новый том со свободным пространством

    Необязательный аргумент опции с getopts

    Давайте будем гением компьютера.