Определение размера шрифта Windows (100%, 125% и 150%)

Я создал приложение, которое отлично работает, пока пользователь не выберет 125% или 150%. Это нарушит мою заявку. Позже я нашел способ найти размер шрифта, определив DPI.

Это отлично работало, пока люди с китайскими версиями Windows 7 не начали использовать мое приложение. Все приложение ломается в китайской Windows 7. Насколько я могу судить (я не могу проверить его, потому что у меня только английская версия, и установка языковых пакетов не вызывает проблем) Китайские символы вызывают странный DPI, который ломает мой применение.

Мой текущий код работает следующим образом:

if (dpi.DpiX == 120) // For 125% fonts
{
    // Resize form and set default font to correct problems
}
else if (dpi.DpiX == 96) // For 100 and 150% fonts
{
    // Resize form and set default font to correct problems
}

В английских версиях Windows 7 он отлично работает, но китайские версии каким-то образом пропускают это сразу, и форма уничтожается сама собой, элементы управления даже не отображаются, шрифт слишком большой и нажимается мимо проблемы, перемещаемых ящиков с картинками.

Итак, как лучше всего определить масштаб шрифта Windows (100%, 125% и 150%) без определения DPI? Мне нужно что-то надежное, что будет работать на всех операционных системах и языках Windows 7.

40
задан Peter Mortensen 16 March 2019 в 19:36
поделиться