Como converter um tamanho WPF em pixels físicos?

Qual é a melhor maneira de converter largura e altura de WPF (independente da resolução) em pixels da tela física?

Estou mostrando o conteúdo do WPF em um formulário WinForms (via ElementHost) e tentando descobrir alguma lógica de dimensionamento. Eu tenho que funcionar bem quando o sistema operacional está sendo executado no padrão de 96 dpi. Mas não funcionará quando o sistema operacional estiver definido para 120 dpi ou outra resolução, porque um elemento WPF que relata sua Largura como 96 terá, na verdade, 120 pixels de largura no que diz respeito ao WinForms.

Não foi possível encontrar nenhuma configuração de "pixels por polegada" no System.Windows.SystemParameters. Tenho certeza de que poderia usar o equivalente do WinForms (System.Windows.Forms.SystemInformation), mas existe uma maneira melhor de fazer isso (leia-se: uma maneira de usar as APIs do WPF, em vez de usar as APIs do WinForms e fazer as contas manualmente)? Qual é a "melhor maneira" de converter "pixels" do WPF em pixels da tela real?

Edição: Eu também estou olhando para fazer isso antes que o controle WPF seja mostrado na tela. Parece que Visual.PointToScreen poderia ser feito para me dar a resposta certa, mas não posso usá-lo, porque o controle ainda não foi criado e recebo InvalidOperationException "Este Visual não está conectado a um PresentationSource".

questionAnswers(4)

yourAnswerToTheQuestion