MigraDoc 部分宽度

MigraDoc section width

我想要一种在 MigraDoc 中设置相对列宽的方法,并且我在该主题上找到了 this post。问题是,它对我不起作用。我已经从 post:

中复制了确切的代码
Section section = document.AddSection();
section.PageSetup.PageFormat = PageFormat.A4;

int sectionWidth = (int)(section.PageSetup.PageWidth - section.PageSetup.LeftMargin - section.PageSetup.RightMargin);
int columnWidth = sectionWidth / 2;

但是,如果我在代码中插入一个断点(紧接在 int columnWidth = ... 之后),它表明该部分页面宽度为零:

所以很明显,从截面宽度派生的所有内容也都变为零。但为什么?如您所见,PageFormat 已正确设置为 "A4"。没看懂...

我设法找到了解决方案(有点巧合)。 post 描述了与 section.PageSetup 有点相似的问题。解决方案是在修改默认页面设置之前创建一个克隆。新代码如下所示:

Section section = document.AddSection();
section.PageSetup = document.DefaultPageSetup.Clone(); // <-- This has been added
section.PageSetup.PageFormat = PageFormat.A4;

int sectionWidth = (int)(section.PageSetup.PageWidth - section.PageSetup.LeftMargin - section.PageSetup.RightMargin);
int columnWidth = sectionWidth / 2;