Я столкнулся с этой проблемой в Windows Forms после использования PInvoke из SetWindowLongPtr для удаления заголовка (WS_CAPTION) из окна Sizable. После этого всякий раз, когда окно свернуто или развернуто, а затем восстановлено до нормального, оно увеличивается (на CaptionHeight + границу).
Похоже, что механизм компоновки Windows Forms пытается компенсировать полосу заголовка, которая, по его мнению, все еще существует. (Если я начну с FormBorderStyle, равного None, и добавлю то, что хочу, т. е. значительную границу, я столкнусь с противоположной проблемой, окно сожмется).
Я обнаружил, что еще один человек столкнулся с этой проблемой на codeplex, но решения не было опубликовано.
Попытки настроить размер в пользовательском обработчике для одного из событий изменения размера слишком рано, т. е. Windows Forms вносит свои коррективы после запуска событий Layout, Resize и SizeChanged, а ResizeEnd не срабатывает, если нет панели заголовка. В любом случае это будет просто обходной путь, я бы хотел, чтобы Windows Forms поступала правильно. Идеи?
(У меня есть работающий обходной путь, который я вскоре опубликую, но он виден конечному пользователю.)