Ширина раздела MigraDoc

Я хотел метод, чтобы установить относительную ширину столбца в MigraDoc, и я нашел этот пост на эту тему. Проблема в том, что это не работает для меня. Я скопировал точный код из этого поста:

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 правильно установлено на "А4". Я не понимаю...

1 ответ

Решение

Мне удалось найти решение (немного по стечению обстоятельств). Этот пост описывает несколько похожую проблему с 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;
Другие вопросы по тегам