Есть ли другие причины, по которым Темы
не может быть установлен после Page.PreInit?
Да. Темы включают скины, которые могут указывать свойства для элементов управления. Эти свойства должны быть установлены во время события Init, поэтому нужная тема должна быть выбрана до этого.
Отслеживание ViewState может быть проблемой, но я думаю, что это незначительное по сравнению с вышеупомянутым.
Обратите внимание, что StyleSheetTheme (предпочтительнее, чем обычная тема, IMO) фактически устанавливается из переопределенного свойства на странице, а не путем установки значения самого свойства (если вы не задали его из HttpModule).
почему нельзя применить главные страницы
после Page.PreInit?
Элементы управления определяют свои идентификаторы и различные другие характеристики и свойства в зависимости от их расположения в дереве элементов управления (включая такие элементы, как доступ к элементу управления формы и т. Д.). Мастер-страница действует как набор родительских элементов управления, поэтому элементы управления могут полностью инициализировать себя, пока эта родительская структура не будет создана. Инициализация происходит во время события Init, поэтому перед этим необходимо выбрать главную страницу.