Мне нужно получить шкалу DPI, установленную на панели управления > Дисплей, для каждого из экранов, подключенных к компьютеру, даже тех, у которых нет окна WPF. Я видел несколько способов получить DPI (например, http://dzimchuk.net/post/Best-way-to-get-DPI-value-in-WPF), но они, похоже, зависят либо от Graphics.FromHwnd(IntPtr.Zero)
, либо от PresentationSource.FromVisual(visual).CompositionTarget.TransformToDevice
.
Есть ли способ получить настройки DPI для каждого отдельного экрана?
Фон - я создаю редактор конфигурации макета, чтобы пользователь мог настроить свою конфигурацию до запуска. Для этого я рисую каждый из экранов относительно друг друга. Для одной конфигурации мы используем 4K-дисплей, который имеет больший по умолчанию набор значений DPI. Он намного меньше, чем физически, по отношению к другим экранам, потому что он сообщает о том же разрешении, что и другие экраны.