Какой лучший способ конвертировать WPF (независимую от разрешения) ширину и высоту к физическим пикселям экрана?
Я показываю содержимое WPF в форме WinForms (через ElementHost) и пытаюсь выработать некоторую логику калибровки. У меня нормально работает, когда ОС работает с разрешением 96 dpi. Но это не сработает, если для ОС установлено значение 120 точек на дюйм или какое-либо другое разрешение, потому что тогда элемент WPF, который сообщает о своей ширине как 96, будет фактически иметь ширину 120 пикселей по отношению к WinForms.
Я не мог найти никаких настроек "пикселей на дюйм" в System.Windows.SystemParameters. Я уверен, что могу использовать эквивалент WinForms (System.Windows.Forms.SystemInformation), но есть ли лучший способ сделать это (читайте: способ использования API WPF, а не использовать API WinForms и вручную выполнять математику)? Какой "лучший способ" конвертировать "пиксели" WPF в реальные пиксели экрана?
EDIT: Я также хочу сделать это, пока на экране не появится элемент управления WPF. Похоже, Visual.PointToScreen можно было бы дать мне правильный ответ, но я не могу его использовать, потому что элемент управления еще не является родительским, и я получаю InvalidOperationException "Этот Visual не подключен к PresentationSource".