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