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

C# 从RichTextBox保存RTF时丢失表格宽度自动调整,c#,wpf,rtf,C#,Wpf,Rtf,好的,我有一个RichTextBox用户控件,用户可以在其中输入任意数量的富文本元素,然后将内容转换为HTML。目前,我正在专门研究桌子。在大多数情况下,它们工作起来非常简单,但当我尝试将RTF保存到文件中,然后再次加载它时,\trautofit1控制字消失,表格宽度减小 要保存到RTF文件,我使用:TextRange.save(fileStream,DataFormats.RTF) 我很确定这个问题与如何保存RTF有关,因为由此产生的文件也有缩小的表 以下是保存前的表格: 以下是保存和加载后的

好的,我有一个RichTextBox用户控件,用户可以在其中输入任意数量的富文本元素,然后将内容转换为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);
}

我将在一个月左右的时间里重新审视这个项目。我会试试你的建议。也许会有更好的结果!