繁体   English   中英

从RichTextBox保存RTF时丢失表格宽度自动调整大小

[英]Losing table width autosize when saving RTF from RichTextBox

好的,所以我有一个RichTextBox用户控件,用户可以在其中输入任意数量的Rich Text元素,然后将内容转换为HTML。 目前,我正在专门处理表。 在大多数情况下,它们很容易工作,但是当我尝试将RTF保存到文件然后再次加载时, \\trautofit1控制字消失,表宽度减小。

要保存到RTF文件,我使用: TextRange.Save(fileStream, DataFormats.Rtf); 我很确定问题与RTF的保存方式有关,因为由此产生的文件也具有缩小的表。

这是保存之前的表: 好表

这是保存和加载后的表: 坏表

那么问题来了: 是否有任何方法可以解决此问题,或者有更好的方法来获取RTF,还是应该使用其他控制字来自动调整表格的宽度?

好的,我找到了解决方案,但这并不是我一直在寻找的解决方案。 之所以决定走这条路,是因为Word就是这样做的。 当您创建表时,我会找到RichTextBox的大小,然后将其除以列数,然后使用\\cellx显式设置每列的宽度。 不是我想要的漂亮解决方案,但是它可以工作。

我使用了另一种黑客解决方案,在保存数据之前,我更改了列宽:

if (table != null && table.Columns.Count == 2)
{
    table.Columns[0].Width = new GridLength(200);
    table.Columns[1].Width = new GridLength(200);
    document.Blocks.Add(table);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM