wpf richtextbox

[转载]WPF操作RichTextBox(转)

(2013-03-26 21:59:48)

转载

标签:

转载

 

原文地址:WPF操作RichTextBox(转)作者: 笨笨发

取出richTextBox里面的内容
第一种方法:将richTextBox的内容以字符串的形式取出
string xw = System.Windows.Markup.XamlWriter.Save(richTextBox.Document);
第二种方法:将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

第一种方法:将字符串转换为数据流赋值给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);
第二种方法:将二进制数据赋值给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();
}

操作RichTextBox
复制 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());

wpf richtextbox

时间: 2024-10-11 12:28:05

wpf richtextbox的相关文章

WPF RichTextBox相关总结

由于公司涉及到聊天对话框的功能,就想到了RichTextBox,查阅相关资料,总结下: 一.RichTextBox的内容相关的类 1.1RichTextBox的内容结构 RichTexBox是个可编辑控件,可编辑我们很容易想到word的可编辑,在word里面我们经常会新建一个Document,然后一段一段的编写,有的时间会插入图片,或者是特殊的文本.同样RichTextBox也是一个以Document为主体的一个控件,Document也有段落(Paragraph),不过段落中是分为小片小片(In

WPF RichTextBox Flowdocment如何实现自动分页?(二)

使用OpenXML SDK实现按页读取内容: 以下内容采用WPF+RichTextBox+FlowDocment展示,测试文档共3页内容,图中展示的是获取第一页内容,效果图后附上代码:效果图如下: 1 /// <summary> 2 /// 按页加载Word 3 /// </summary> 4 /// <param name="flowDoc"></param> 5 /// <param name="filename&q

WPF RichTextBox的使用总结

RichTextBox内容模型 RichTextBox 支持基于块的内容模型. RichTextBox   的内容属性为 Blocks,这是 Paragraph 元素的集合Paragraph元素可包含从 Inline 派生的元素.上图总结了 RichTextBox 的内容模型,并且显示从 Block 和 Inline 派生的元素是如何适应此模型的. 简单介绍 1.RichTextBox    是一个可支持您显示或编辑丰富内容(包括段落.超链接和内联图像)的控件.本主题介绍 RichTextBox

WPF RichTextBox Flowdocment如何实现自动分页?

需求说明:在不需要Office组件的前提下,利用WPF展现技术.OpenXMLSDK实现Word文档的新建.编辑,只保留基本功能即可,最重要的是要能够根据内容实现自动分页,也要支持手动分页; 最开始,从实现角度考虑,WPF+RichTextBox展现,然后内容通过FlowDocment.Load来加载Word文档,先来看下效果: 那么问题来了,界面中只有一个RichTextBox控件,展示的时候怎么进行分页显示,类似Office Word窗口效果一样呢?怎么实现? 我们都知道Office2007

WPF RichTextBox 禁止换行

原文:WPF RichTextBox 禁止换行 这个问题困扰了好久,进过不断的努力,终于解决了 ? ??????? <RichTextBox Margin="0,44,10,0" Name="codeText" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" HorizontalAlignment="Right&qu

WPF RichTextBox 插入换行 移动光标

原文:WPF RichTextBox 插入换行 移动光标 第一次使用的方法是: richTextBox1.CaretPosition.InsertLineBreak(); richTextBox1.CaretPosition = richTextBox1.CaretPosition.GetNextInsertionPosition(LogicalDirection.Forward); richTextBox1.Focus(); 改方法在win7下正常.但是在win10下,当输入汉字的时候,虽然光

WPF RichTextBox 控件常用方法和属性

以下内容转自 http://blog.csdn.net/yulongguiziyao/article/details/25330551. 1. 取得已被选中的内容: (1)使用 RichTextBox.Document.Selection属性(2)访问RichTextBox.Document.Blocks属性的“blocks”中的Text2. 在XAML中增加内容给RichTextBox:<RichTextBox IsSpellCheckEnabled="True">  

WPF RichTextBox滚动条自动滚动实例、文本自动滚动实例

说明:1.后台代码添加测试 数据 2.使用 richTextBox.ScrollToVerticalOffset()方法,滚动竖直方向滚动条位置 3.使用定时器DispatcherTimer,修改页面显示数据 4.自己计算处理,已经滚动的高度位置 Xaml代码: <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="205*"/> <ColumnDefinition Width=&qu

WPF RichTextBox 如何滚动到光标所在位置、滚动条操作

1.获取当前滚动条位置 //获取当前滚动条位置 richTextBox.VerticalOffset; richTextBox.HorizontalOffset; //获取当前光标位置 richTextBox.CaretPosition 2.滚动到开始,结束,指定位置 // // 摘要: // 将编辑控件的视图设置为内容的末尾. public void ScrollToEnd(); // // 摘要: // 将编辑控件的 " 视图到视区的开头. public void ScrollToHome(