Mega Code Archive

 
Categories / C# Tutorial / WPF
 

Get FlowDocument from RichTextBox

using Microsoft.Win32; using System; using System.IO; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media;     public class MainClass : Window     {         RichTextBox txtbox = new RichTextBox();         [STAThread]         public static void Main()         {             Application app = new Application();             app.Run(new MainClass());         }         public MainClass()         {             txtbox.VerticalScrollBarVisibility = ScrollBarVisibility.Auto;             Content = txtbox;             txtbox.Focus();         }         protected override void OnPreviewTextInput(TextCompositionEventArgs args)         {             if (args.ControlText.Length > 0 && args.ControlText[0] == '\x0F')             {                 OpenFileDialog dlg = new OpenFileDialog();                 dlg.CheckFileExists = true;                 dlg.Filter = "Document Files(*.xaml)|*.xaml|All files (*.*)|*.*";                 if ((bool)dlg.ShowDialog(this))                 {                     FlowDocument flow = txtbox.Document;                     TextRange range = new TextRange(flow.ContentStart, flow.ContentEnd);                     Stream strm = null;                     try                     {                         strm = new FileStream(dlg.FileName, FileMode.Open);                         range.Load(strm, DataFormats.Xaml);                     }catch (Exception exc) {                         MessageBox.Show(exc.Message, Title);                     }finally{                         if (strm != null)                             strm.Close();                     }                 }                 args.Handled = true;             }             base.OnPreviewTextInput(args);         }     }