• WPF 中RichTextBox控件用法细讲


    1. 取得已被选中的内容:
    (1)使用RichTextBox.Document.Selection属性
    (2)访问RichTextBox.Document.Blocks属性的“blocks”中的Text


    2.WPF RictTextBox内容清空方式:txtXml.Document.Blocks.Clear();


    3. 从文件中读出纯文本文件后放进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);
    }

    4. 取得指定RichTextBox的内容:

    private string GetText(RichTextBox richTextBox)
    {
        TextRange textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
        return textRange.Text;
    }

    5. 将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);
            }
        }
    }

    6. 将文件中的内容加载为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);
        }
    }

    7. 将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);
        }
    }

    读取与写入图片和文本操作::::

    读取RichTextBox的内容到string,将字符串保存到数据库的方法就不写了,大家都会

    string GetTextByRichBox(RichTextBox box)
    {
        MemoryStream s = new MemoryStream();
        TextRange documentTextRange = new TextRange(box.Document.ContentStart, box.Document.ContentEnd);
        documentTextRange.Save(s, DataFormats.XamlPackage);
        return Convert.ToBase64String(s.ToArray());
    }

    将string的内容转换成图片显示在RichTextBox中

    private ShowTextToRichBox(RichTextBox box)
    {
        MemoryStream s = new MemoryStream((Convert.FromBase64String(Convert.ToString(dr[“D_DESC”]))));
        TextRange TR = new TextRange(box.Document.ContentStart, box.Document.ContentEnd);
        TR.Load(s, DataFormats.XamlPackage);
    }
  • 相关阅读:
    SVN报错working copy is not uptodate
    AndroidStudio中获得的VersionCode一直为1和VersionName一直为1.0
    OkHttp
    MockWebServer使用指南(转载)
    Android的Toolbar(含溢出菜单设置[弹出菜单的使用])的使用PopMenu的样式
    8-13笔记-安卓兼容
    自定义Dialog
    安卓圆角Button XML文件
    递归方法扫面文件夹(JAVA控制台程序)
    8月12笔记-安卓文件扫描
  • 原文地址:https://www.cnblogs.com/wzwyc/p/6292138.html
Copyright © 2020-2023  润新知