zoukankan      html  css  js  c++  java
  • WPF-20:richtextbox相关操作(转)

    WPF中的richtextbox与winform中的richtextbox的使用不同,看看下面的基本操作:

    一、取出richTextBox里面的内容
     (1)将richTextBox的内容以字符串的形式取出

     string xw = System.Windows.Markup.XamlWriter.Save(richTextBox.Document);

     (2)将richTextBox的类容以二进制数据的方法取出

         FlowDocument document = richTextBox.Document;
          System.IO.Stream s = new System.IO.MemoryStream(); 
          System.Windows.Markup.XamlWriter.Save(document, s);         
          byte[] data = new byte[s.Length];
          s.Position = 0;
          s.Read(data, 0, data.Length);
           s.Close(); 

    二、richTextBox赋值
     (1)将字符串转换为数据流赋值给richTextBox中  

     System.IO.StringReader sr = new System.IO.StringReader(xw);
       System.Xml.XmlReader xr = System.Xml.XmlReader.Create(sr);
       richTextBox1.Document = (FlowDocument)System.Windows.Markup.XamlReader.Load(xr);

    (2)将二进制数据赋值给richTextBox

        System.IO.Stream ss = new System.IO.MemoryStream(data);
         FlowDocument doc = System.Windows.Markup.XamlReader.Load(ss) as FlowDocument;
          ss.Close();
          richTextBox1.Document = doc;

    三、清空RichTextBox的方法

    System.Windows.Documents.FlowDocument doc = RichTextBox.Document;
    doc.Blocks.Clear(); 

    四、如何将一个String类型的字符串赋值给richTextBox

    myRTB.Document = new FlowDocument(new Paragraph(new Run(myString))); 
    FlowDocument doc = new FlowDocument();
     Paragraph p = new Paragraph();  // Paragraph 类似于 html 的 P 标签
     Run r = new Run(myString);      // Run 是一个 Inline 的标签
     p.Inlines.Add(r);
     doc.Blocks.Add(p);
     myRTB.Document = doc;

    五、将richTextBox中的内容以rtf的格式完全取出

         string rtf = string.Empty;
                 TextRange textRange = new TextRange(richTextBox.Document.ContentStart, richTextBox.Document.ContentEnd);
                 using (System.IO.MemoryStream ms = new System.IO.MemoryStream())
                 {
                     textRange.Save(ms, System.Windows.DataFormats.Rtf);
                     ms.Seek(0, System.IO.SeekOrigin.Begin);
                     System.IO.StreamReader sr = new System.IO.StreamReader(ms);
                     rtf = sr.ReadToEnd();
                 }

    六、其他操作

     复制:   ToolBarCopy.Command = System.Windows.Input.ApplicationCommands.Copy;
     剪切:   toolBarCut.Command = System.Windows.Input.ApplicationCommands.Cut;
     粘贴:   ToolBarPaste.Command = System.Windows.Input.ApplicationCommands.Paste;
     撤销:   ToolBarUndo.Command = System.Windows.Input.ApplicationCommands.Undo;
     复原:   ToolBarRedo.Command = System.Windows.Input.ApplicationCommands.Redo;
     文字居中:  toolBarContentCenter.Command = System.Windows.Documents.EditingCommands.AlignCenter;
     文字居右:  toolBarContentRight.Command = System.Windows.Documents.EditingCommands.AlignRight;
     文字居左:  toolBarContentLeft.Command = System.Windows.Documents.EditingCommands.AlignLeft;
     有序排列:  ToolBarNumbering.Command = System.Windows.Documents.EditingCommands.ToggleNumbering;
     无序排列:  ToolBarBullets.Command = System.Windows.Documents.EditingCommands.ToggleBullets;
     字体变大:
                 int fontSize = Convert.ToInt32(richTextBox.Selection.GetPropertyValue(TextElement.FontSizeProperty));
                 fontSize++;
                 richTextBox.Selection.ApplyPropertyValue(TextElement.FontSizeProperty, fontSize.ToString());



  • 相关阅读:
    书单
    x&(x1)表达式的意义
    约瑟夫环,杀人游戏(静态循环链表实现)
    我的第一个动态规划程序(试图用递归求斐波拉契数)
    NYOJ 2题 括号配对问题
    为什么 C++不叫作++C? o(∩_∩)o
    文字常量区,字符串常量
    括号匹配(栈实现)
    Mybatis的逆向工程(generator)
    Mybatis学习一(介绍/举例/优化)
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3157341.html
Copyright © 2011-2022 走看看