>我有许多小的"模板"样式的TXTextControl文档,我将它们组合在一起以构建一个大型文档。
模板是使用 TXTextControl 在我的应用程序中创建的,内容以字节数组的形式存储在数据库中,使用 TXTextControl 内部格式。
我检索每个模板文档并使用 Select 类构建一个新文档以加载每个模板文档的内容,如下所示;
tx.Selection.Load(myContent, BinaryStreamType.InternalFormat);
myContent 是从数据库中读取的字节数组。
大多数模板文档只有一行,但其中有一些选项卡被更改,并且可能是居中、右对齐等。
我注意到的是,如果每个小文档都以换行符结尾(即用户在保存之前在文档中按 Enter 键(,则模板文档会正确插入。
如果没有换行符,制表符和对齐方式将丢失。如果"模板文档"多行,则仅最后一行的格式会丢失。
更糟糕的是,如果在模板文档的最后一个位置有一个文本字段,那么在此模板文档之后插入到我的新文档中的所有内容都会像文本字段中的文本一样插入,从而使新文档看起来很糟糕。
是否可以从字节数组中插入少量的 TXTextControl 内部格式样式文本,并确保它完全按照创建时插入
?或者,我可以强制我使用的字节数组正确终止 - 使用 CR。LF或其他东西来强制它正确插入。
我设法找到的唯一"解决方法"是在插入的文档之后附加一个新行。
这仅在直接使用 TXTextControl.TextControl 对象构建文本时才有效,而不是对属于 TextControl 对象的选择对象的引用。
这有效;
TXTextControl.TextControl tx = new TXTextControl.TextControl();
tx.CreateControl();
tx.Selection.Start = -1;
tx.Selection.Text = System.Enviornment.NewLine;
但是,将选择对象传递到流程中并传递该对象以在其选择对象中构建文档是行不通的。保留原始控件(及其选择(的格式,我想这可能是有道理的。