Ширина раздела 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;