• WPF中richtextbox的一些用法


     

    1. 从文件中读出纯文本文件后放进RichTextBox或直接将文本放进RichTextBox中:
    private void LoadTextFile(RichTextBox richTextBox, string filename)
    {
        richTextBox.Document.Blocks.Clear();
        using (StreamReader streamReader = File.OpenText(filename)) {
               Paragraph paragraph = new Paragraph();
               paragraph.Text = streamReader.ReadToEnd();
               richTextBox.Document.Blocks.Add(paragraph);
        }
    }

    private void LoadText(RichTextBox richTextBox, string txtContent)
    {
        richTextBox.Document.Blocks.Clear();
        Paragraph paragraph = new Paragraph();
        paragraph.Text = txtContent;
        richTextBox.Document.Blocks.Add(paragraph);
    }
    2. 取得指定RichTextBox的内容:
    private string GetText(RichTextBox richTextBox)
    {
            TextRange textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
            return textRange.Text;
    }
    3. 将RTF (rich text format)放到RichTextBox中:
            private static void LoadRTF(string rtf, RichTextBox richTextBox)
            {
                if (string.IsNullOrEmpty(rtf)) {
                    throw new ArgumentNullException();
                }
                TextRange textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
                using (MemoryStream rtfMemoryStream = new MemoryStream()) {
                    using (StreamWriter rtfStreamWriter = new StreamWriter(rtfMemoryStream)) {
                        rtfStreamWriter.Write(rtf);
                        rtfStreamWriter.Flush();
                        rtfMemoryStream.Seek(0, SeekOrigin.Begin);
                        //Load the MemoryStream into TextRange ranging from start to end of RichTextBox.
                        textRange.Load(rtfMemoryStream, DataFormats.Rtf);
                    }
                }
            }

    4. 将文件中的内容加载为RichTextBox的内容
            private static void LoadFile(string filename, RichTextBox richTextBox)
            {
                if (string.IsNullOrEmpty(filename)) {
                    throw new ArgumentNullException();
                }
                if (!File.Exists(filename)) {
                    throw new FileNotFoundException();
                }
                using (FileStream stream = File.OpenRead(filename)) {
                    TextRange documentTextRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
                    string dataFormat = DataFormats.Text;
                    string ext = System.IO.Path.GetExtension(filename);
                    if (String.Compare(ext, ".xaml",true) == 0) {
                        dataFormat = DataFormats.Xaml;
                    }
                    else if (String.Compare(ext, ".rtf", true) == 0) {
                        dataFormat = DataFormats.Rtf;
                    }
                    documentTextRange.Load(stream, dataFormat);
                }       
            }

    5. 将RichTextBox的内容保存为文件:
            private static void SaveFile(string filename, RichTextBox richTextBox)
            {
                if (string.IsNullOrEmpty(filename)) {
                    throw new ArgumentNullException();
                }
                using (FileStream stream = File.OpenWrite(filename)) {
                    TextRange documentTextRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
                    string dataFormat = DataFormats.Text;
                    string ext = System.IO.Path.GetExtension(filename);
                    if (String.Compare(ext, ".xaml", true) == 0) {
                        dataFormat = DataFormats.Xaml;
                    }
                    else if (String.Compare(ext, ".rtf", true) == 0) {
                        dataFormat = DataFormats.Rtf;
                    }
                    documentTextRange.Save(stream, dataFormat);
                }
            }

    转自:http://hi.baidu.com/%D6%A3%F0%A9%D2%FC/blog/item/d2f03a1048d7ee0d213f2e11.html
  • 相关阅读:
    【BZOJ1858】序列操作(SCOI2010)-线段树
    【BZOJ1858】序列操作(SCOI2010)-线段树
    【SPOJ3267】D-query-莫队算法
    【BZOJ2038】小Z的袜子(2009国家集训队)-莫队算法
    【BZOJ2038】小Z的袜子(2009国家集训队)-莫队算法
    【HDU3966】Aragorn's Story-树链剖分或LCT维护路径
    BZOJ 4569 萌萌哒
    BZOJ 2460 元素
    BZOJ 2115 Xor
    BZOJ 2750 Road
  • 原文地址:https://www.cnblogs.com/liancs/p/3879299.html
Copyright © 2020-2023  润新知