System.Windows.Controls.RichTextBox
首先考虑使用这个控件
上下标设置
var textrange = new TextRange(rtb.Selection.Start, rtb.Selection.End);
textrange.ApplyPropertyValue(Run.BaselineAlignmentProperty, BaselineAlignment.Superscript); //上标
textrange.ApplyPropertyValue(Run.BaselineAlignmentProperty, BaselineAlignment.Subscript); //下标
上下标的设置没有问题,显示也没有问题,但当把RichTextBox
中的内容存取时,问题出现了:
1. 保存的rtf格式中上下标信息丢失;
2. 对RichTextBox的文本信息进行右键复制,粘贴到word中,上下标信息丢失
相关代码如下:
public static class Extend
{
public static string GetText(this RichTextBox rtb, string dataformat)
{
if (null == rtb)
return "";
var range = new TextRange(rtb.Document.ContentStart, rtb.Document.ContentEnd);
using (var ms = new MemoryStream())
{
range.Save(ms, dataformat);
ms.Seek(0, SeekOrigin.Begin);
using (var sr = new StreamReader(ms))
return sr.ReadToEnd();
}
}
public