Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- FlowDocument flowDoc = new FlowDocument();
- using (MemoryStream mem = new MemoryStream(bytesFromDB)
- {
- TextRange textRange = new TextRange(
- flowDoc.ContentStart,
- flowDoc.ContentEnd);
- textRange.Load(mem, DataFormats.XamlPackage);
- }
- textRange.Load(mem, DataFormats.XamlPackage);
- var sw = Stopwatch.StartNew();
- var doc = new FlowDocument();
- var tr = new TextRange(doc.ContentStart, doc.ContentEnd);
- using (var stream = File.OpenRead(@"D:CSharp Language Specification.rtf"))
- tr.Load(stream, DataFormats.Rtf);
- Viewer.Document = doc;
- sw.Stop();
- Status.Text = "Finished in " + sw.Elapsed;
- try
- {
- var sw = Stopwatch.StartNew();
- Viewer.Document = null;
- Status.Text = "Loading...";
- Progress<string> p = new Progress<string>(s => Status.Text = s);
- var xaml = await Task.Run(
- () => LoadAsXamlInBackground(@"D:CSharp Language Specification.rtf", p));
- Status.Text = "Rendering...";
- var doc = (FlowDocument)XamlReader.Load(xaml);
- Viewer.Document = doc;
- sw.Stop();
- Status.Text = "Finished in " + sw.Elapsed;
- }
- catch (Exception ex)
- {
- Status.Text = "Failed: " + ex.ToString();
- }
- // ...
- MemoryStream LoadAsXamlInBackground(string filename, IProgress<string> progress)
- {
- var ms = new MemoryStream();
- var doc = new FlowDocument();
- var tr = new TextRange(doc.ContentStart, doc.ContentEnd);
- using (var stream = File.OpenRead(filename))
- tr.Load(stream, DataFormats.Rtf);
- progress.Report("Loaded, converting...");
- XamlWriter.Save(doc, ms);
- progress.Report("Converted...");
- ms.Position = 0;
- return ms;
- }
- Main
- Thread th = new Thread ( delegate () { load (); } );
- th.TrySetApartmentState ( ApartmentState.STA );
- th.Start ();
Add Comment
Please, Sign In to add comment