Como cargar y guardar archivos RichText con WPF y VB

Es bastante sencillo.

Puedes crear un formulario por ejemplo que tenga un RichTextBox y dos botones, btnCarga y btnGuarda. Añades además un control RichTextBox.

Este control, maravilloso, contiene dos métodos Save y Load, que permitirán volcar o cargar el contenido del RichTextBox en formato Stream.

Pero para acceder al disco utilizaremos un objeto StreamReader o StreamWriter, que en principio no nos cuadrará con el objeto Stream del RichTextBox.

El método por ejemplo para el salvado, es RichTextBox1.Save (objetoStream, dataFormat) y no podemos asignarle directamente un objeto del tipo StreamWriter, pero si, el objeto que contiene el Stream de base que está contenido en el StreamWriter y StreamReader, que es el que realmente necesita, de modo, que pasándole este último funcionará.

Private Sub btnCarga(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button1.Click

Dim archivoCarga As New StreamReader("prueba.rtf")
 With RichTextBox1
 .Selection.Select(.Document.ContentStart, RichTextBox1.Document.ContentEnd)
 .Selection.Load(archivoCarga.BaseStream, System.Windows.DataFormats.Rtf)
 End With

End Sub

Private Sub btnGuarda(ByVal sender As System.Object, ByVal e As System.Windows.RoutedEventArgs) Handles Button2.Click

Dim archivoSalida As New StreamWriter("prueba.rtf")
 Dim bs As Stream = archivoSalida.BaseStream
 With RichTextBox1
 .Selection.Select(RichTextBox1.Document.ContentStart, RichTextBox1.Document.ContentEnd)
 .Selection.Save(bs, System.Windows.DataFormats.Rtf)
 End With

End Sub

Los métodos Load y Save están en el objeto Selection, de modo que para guardar todo el contenido, forzamos a seleccionarlo todo previamente, o si no, solo guardaría lo seleccionado por el usuario.

Esto requiere además,  controles de comprobación de fichero, los try catch correspondientes para detectar errores, etc, cierre de ficheros, etc, pero para empezar es suficiente.