Обработчик события Window_SizeChanged в моем приложении сообщает о неверном размере в SizeChangedEventArgs.NewSize.Кроме того, изменение WindowStyle на «None» (без рамки) уменьшило размер вместо увеличения.
Мне удалось воспроизвести это, создав приложение WPF по умолчанию и добавив обработчик для SizeChanged в Window.
В частности, мое разрешение монитора составляет 1920x1080.
При 100% = 96 DPI, при максимизации окна я ожидал этого размера, но получил 1934x1094 для стиля «Нет» и 1936x1056 в противном случае.
И при 125% = 120 DPI я бы ожидал размер 4/5 с разрешением 1536x864, но получился бы размер 1548.4x876.8 для стиля "None" и 1550.4x840.0 в противном случае.
Аналогичная проблема, WPF Maximized Window больше, чем screen , спрашивает, почему размер окна, как сообщается, больше, чем экран при максимизации, но это происходит для любого стиля окна.Кроме того, в этом отчете нет принятого ответа или ответа, который обрабатывает несколько мониторов или другие стили окон.
Это не объясняется с учетом границы и заголовка, поскольку размер окна не должен превышать размер экрана,и потому что граница не 7 пикселей в толщину.
Так что не так с моими вычислениями размера?Почему он дает больший размер, когда у окна есть рамка?В результате я не могу правильно разместить и масштабировать компонент в моем приложении.