wpf – flowdocument – 在结尾处插入富文本,在插入点上方创建额
发布时间:2020-12-17 00:19:35 所属栏目:大数据 来源:网络整理
导读:我正在创建一个由多个记录组成的flowdocument.每条记录在顶部包含两个表,然后是一些我从数据库中提取的富文本.附加富文本的代码位于下面(cp.Comments包含rtf标记文本). Dim tr As TextRangeDim arr() As ByteUsing ms As New System.IO.MemoryStream arr = (
我正在创建一个由多个记录组成的flowdocument.每条记录在顶部包含两个表,然后是一些我从数据库中提取的富文本.附加富文本的代码位于下面(cp.Comments包含rtf标记文本).
Dim tr As TextRange Dim arr() As Byte Using ms As New System.IO.MemoryStream arr = (New System.Text.UTF8Encoding).GetBytes(cp.Comments) ms.Write(arr,arr.Length) ms.Seek(0,IO.SeekOrigin.Begin) tr = New TextRange(fd.ContentEnd,fd.ContentEnd) 'add to end tr.Load(ms,DataFormats.Rtf) End Using flowdocument正确呈现第一个记录,但所有后续记录都在第一个和第二个表之间中断.最奇怪的是我在导入RTF之前渲染了2个表,但RTF无论如何都会以某种方式影响表之间的间距. fd = new FlowDocument for each cp in SomeCollection fdtemp = New FlowDocument CreateFirstTable(cp,fdtemp) CreateSecondTable(cp,fdtemp) AddRTF(cp,fdtemp) FlowDocumentUtils.AddDocument(fdtemp,fd) next 问题不在于集合的第一个元素中的数据 – 如果我告诉渲染跳过第一个记录的渲染,那么第二个记录渲染正常,但其余的包含额外的间距. 注意:问题肯定与富文本插入有关 – 如果我注释掉AddRTF调用,那么所有表都被正确地渲染在一起. (表边距都设置为(0,0)) 有没有人见过这个?
你有没有检查过这个问题的解决方案:
> Adding text in a new line in WPF RichTextBox at runtime 此外,您似乎有两种不同的方法: CreateFirstTable(cp,fdtemp) CreateSecondTable(cp,fdtemp) 我怀疑这两种方法的运作方式之间的区别在于问题所在,但是我知道他们真正在做什么,我只能推测. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |