728x90 AdSpace

15 de jun. de 2010

Silverlight Rich TextBox – Salvando e Abrindo Arquivos

Neste post irei demonstrar como é possivel salvar e abrir arquivos de texto formatado usando o Rich TextBox no Silverlight 4.

Na UI precisamos de um botão para Salvar (btnSave), um botão para Abrir (btnOpen) e um RichTextBox (rtbText)

 

   1: <Button x:Name="btnSave" Click="btnSave_Click" Content="Salvar"/>
   2: <Button x:Name="btnOpen" Click="btnOpen_Click" Content="Abrir"/>
   3: <RichTextBox x:Name="rtbText" />

Para o método salvar definimos:
 
   1: private void btnSave_Click(object sender, RoutedEventArgs e)
   2: {
   3:     string xaml = rtbText.Xaml;
   4:     SaveFileDialog sfd = new SaveFileDialog();
   5:     sfd.DefaultExt = ".sav";
   6:     sfd.Filter = "Saved Files|*.sav|All Files|*.*";
   7:     if (sfd.ShowDialog().Value)
   8:     {
   9:         using (FileStream fs = (FileStream)sfd.OpenFile())
  10:         {
  11:             UTF8Encoding enc = new UTF8Encoding();
  12:             byte[] buffer = enc.GetBytes(xaml);
  13:             fs.Write(buffer, 0, buffer.Length);
  14:             fs.Close();
  15:         }
  16:     }
  17: }


Neste caso, recuperamos o conteúdo da propriedade Xaml do controle rtbText, ela possui o texto e sua formatação. De posse destes dados, basta salvar o arquivo utilizando um simples FileStream.

Para abrir um arquivo salvo e adiciona-lo ao RichTextBox, basta básicamente fazer o processo inverso, ou seja, abrir um StreamReader e ler o conteúdo do arquivo e adiciona-lo a propriedade Xaml do controle rtbText.

   1: private void btnOpen_Click(object sender, RoutedEventArgs e)
   2:         {
   3:             OpenFileDialog ofd = new OpenFileDialog();
   4:             ofd.Multiselect = false;
   5:             ofd.Filter = "Saved Files|*.sav|All Files|*.*";
   6:  
   7:             if (ofd.ShowDialog().Value)
   8:             {
   9:                 FileInfo fi = ofd.File;
  10:                 using (StreamReader reader = fi.OpenText())
  11:                 {
  12:                     rtbText.Xaml = reader.ReadToEnd();
  13:                 }
  14:             }
  15:         }

 

Com isto, é possivel mostrar um texto formatado salvo diretamente no RichTextBox.

no image
  • Blogger Comments
  • Facebook Comments

0 comentários :

Top