2016-03-08 4 views
4

Je suis un peu confus au sujet de la prise en charge de ppp-monitor dans WPF. Je pensais que vous devez faire un peu de travail pour que vos fenêtres soient correctement mises à l'échelle sur différents moniteurs (comme décrit dans Developing a Per-Monitor DPI-Aware WPF Application).Mon application WPF est prête à l'emploi en fonction du format de mon moniteur. Je ne m'attendais pas à ça?

Mais je viens de lancer mon application sur PC avec deux moniteurs (2560x1440 et 2160x1440) et le dialogue se met automatiquement à l'échelle quand je le déplace entre les moniteurs. C'est sur la dernière sonnerie rapide Windows 10. Ai-je raté quelque chose?

+0

Tant que vous faites des valeurs de code pas difficile à vous des éléments UI application WPF elle échelle d'auto automatiquement. – XAMlMAX

+0

@XAMlMAX est-ce vrai aussi pour Windows 8.1? et qu'en est-il de cet article que j'ai lié dans le post? Cela signifie que vous devez écouter vous-même l'événement modifié par ppp. –

+0

Sans lien, mais maintenant je suis curieux; ce qui se passe si votre fenêtre est à mi-chemin entre les deux moniteurs? – BTownTKD

Répondre

5

Ce que vous voyez est un exemple de mise à l'échelle du système quand une fenêtre d'application se déplace vers un autre moniteur avec un DPI différent. C'est parce que les applications WPF sont par défaut System DPI Aware. Par conséquent, si vous le remarquez attentivement, vous verrez que les visuels/le texte WPF deviennent flous lorsque le DPI cible est plus élevé ou qu'ils sont flous lorsque le DPI cible est inférieur. Notez également que la résolution du moniteur n'a pas d'importance pour les applications WPF, car WPF est indépendant de la résolution de l'appareil (son unité de mesure est Pixels indépendants du périphérique). Bonne nouvelle: la prévisualisation de .NET 4.6.2 vient de sortir et elle a été prise en compte dès le début. Consultez le guide des développeurs et des échantillons ici:

https://github.com/Microsoft/WPF-Samples/tree/master/PerMonitorDPI

1

Poursuivre la conversation à partir des commentaires.
Oui, c'est la même chose pour Windows 8.1.
Et voici la note de votre lien applications de post

Windows Presentation Foundation (WPF) sont par le système par défaut DPI-conscient.

HTH

+0

C'est un système DPI-conscient cependant. Ce n'est pas compatible ppp-moniteur. Donc, oui, l'application WPF évolue lorsque vous modifiez les paramètres DPI dans Windows, mais dans Win10 vous pouvez avoir différents moniteurs fonctionnant avec différents DPI et autant que j'ai compris que ce n'est pas pris en charge par les applications WPF out of the box. –

+0

Le 'WPF' utilise DirectX pour afficher n'importe quoi sur le moniteur et autant que je peux dire que utilise directement votre GPU pour afficher le contenu sur l'écran. Ainsi, lorsque vous déplacez votre application d'un moniteur à un autre, il utilisera un contexte de dessin différent. Cela fonctionnera avec plusieurs connexions mais si vous utilisez un câble séparateur, il se peut que ce ne soit pas le cas. HTH – XAMlMAX