tag*_*ius 8 vb.net wpf flowdocument richtext
我正在创建一个包含多个记录的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, 0, 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
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
问题不是集合的第一个元素中的数据 - 如果我告诉渲染跳过第一个记录的渲染,那么第二个记录渲染正常,但其余的包含额外的间距.
注意:问题肯定与富文本插入有关 - 如果我注释掉AddRTF调用,那么所有表都被正确地呈现在一起.(表边距都设置为(0,0,0,0))
有没有人见过这个?
您是否检查过其他问题的解决方案:
另外,您似乎有两种单独的方法:
CreateFirstTable(cp, fdtemp)
CreateSecondTable(cp, fdtemp)
Run Code Online (Sandbox Code Playgroud)
我怀疑这两种方法的运行方式之间的差异就是问题所在,但由于不知道它们真正在做什么,我只能推测。