Como chegar RTF do RichTextBox
-
03-07-2019 - |
Pergunta
Como faço para obter o texto em RTF de um RichTextBox
? Eu estou tentando obter como esta, mas a propriedade não existe.
RichTextBox rtb = new RichTextBox();
string s = rtb.Rtf;
Solução
Para obter o XAML real criado pelo interior do usuário do RichTextBox:
TextRange tr = new TextRange(myRichTextBox.Document.ContentStart,
myRichTextBox.Document.ContentEnd);
MemoryStream ms = new MemoryStream();
tr.Save(ms, DataFormats.Xaml);
string xamlText = ASCIIEncoding.Default.GetString(ms.ToArray());
EDIT: eu não tenho código na frente de mim para teste, mas uma instância do tipo TextRange
tem uma Save
(de fluxo) método que leva um parâmetro DataFormats
, que pode ser DataFormats.Rtf
Outras dicas
Existem 2 classes RichTextBox, uma do quadro winforms e um do quadro WPF:
System.Windows.Controls.RichTextBox wpfBox;
System.Windows.Forms.RichTextBox winformsBox;
Apenas o WinForms RichTextBox tem uma propriedade RTF, o outro tem uma propriedade de documento que contém um FlowDocument.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow