Mega Code Archive

 
Categories / C# / WPF
 

Load or Save the Content of a RichTextBox

<Window x:Class="WpfApplication1.Window1"     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"     Title="WPF" Height="300" Width="300">     <DockPanel>         <StackPanel DockPanel.Dock="Top" Orientation="Horizontal">             <Button Content="_New" Name="btnNew" Click="btnNew_Click" />             <Button Content="_Open" Name="btnOpen" Click="btnOpen_Click" />             <Button Content="_Save" Name="btnSave" Click="btnSave_Click" />         </StackPanel>         <RichTextBox DockPanel.Dock="Bottom" Name="rtbTextBox1"                      HorizontalScrollBarVisibility="Visible"                       VerticalScrollBarVisibility="Visible">             <FlowDocument>                 <Paragraph>this is a test</Paragraph>                 <Paragraph>this is a test</Paragraph>             </FlowDocument>         </RichTextBox>     </DockPanel> </Window> //File:Window.xaml.cs using Microsoft.Win32; using System; using System.IO; using System.Windows; using System.Windows.Documents; using System.Windows.Markup;     namespace WpfApplication1 {     public partial class Window1 : Window     {         private String currentFileName = String.Empty;         public Window1()         {             InitializeComponent();         }         private void btnOpen_Click(object sender, RoutedEventArgs e)         {             OpenFileDialog dialog = new OpenFileDialog();             dialog.FileName = currentFileName;             dialog.Filter = "XAML Files (*.xaml)|*.xaml";             if (dialog.ShowDialog() == true)             {                 currentFileName = dialog.FileName;                 {                     using (FileStream stream = File.Open(currentFileName, FileMode.Open))                     {                         FlowDocument doc = XamlReader.Load(stream) as FlowDocument;                         if (doc == null)                         {                             MessageBox.Show("Could not load document.", Title);                         }                         else                         {                             rtbTextBox1.Document = doc;                         }                     }                 }             }         }         private void btnNew_Click(object sender, RoutedEventArgs e)         {             rtbTextBox1.Document = new FlowDocument();             currentFileName = String.Empty;         }         private void btnSave_Click(object sender, RoutedEventArgs e)         {             SaveFileDialog dialog = new SaveFileDialog();             dialog.FileName = currentFileName;             dialog.Filter = "XAML Files (*.xaml)|*.xaml";             if (dialog.ShowDialog() == true)             {                 currentFileName = dialog.FileName;                 using (FileStream stream = File.Open(currentFileName, FileMode.Create))                 {                     XamlWriter.Save(rtbTextBox1.Document, stream);                 }             }         }     } }