У меня есть старое приложение WinForms, и я хочу сохранить положение и размер окна между сеансами. Я использовал GetWindowPlacement и SetWindowPlacement во время событий FormClosing и Load. Проблема, которую я получаю, заключается в том, что при более высоких настройках DPI (например, Medium, размер при 125%) размеры продолжают увеличиваться. Я вызову SetWindowPlacement для этого с определенным размером, но когда вызывается GetWindowPlacement, эти числа возвращаются на 25% больше, даже если окно было одинакового размера все время. Такая же проблема существует при сохранении размера изменяемого размера элемента в форме.
Теперь это работает нормально, если я создаю новый проект WinForms: размер остается стабильным даже при работе с более высоким DPI. Я предполагаю, что в недрах проекта есть какие-то устаревшие настройки или какие-то загадочные настройки форм, которые все портят, но я не могу найти где.
Я звонил IsProcessDPIAware в обоих проектах, и оба true
. Кто-нибудь знает, что может быть причиной этого?