2 votes

La mise à l'échelle DPI de Winforms est perturbée par la mise à jour anniversaire de Windows 10 et Visual Studio 2015 Update 4.

J'utilise mon application Winforms avec la mise à jour anniversaire de Windows 10.

Lors de l'exécution sous le débogueur Visual Studio 2015 Update 4, la disposition de l'interface utilisateur est complètement chamboulée. Certains contrôles sont beaucoup plus petits, d'autres beaucoup plus grands, la détection des coups de souris est désactivée, etc.

Lorsque j'exécute l'exe seul, sans le débogueur, il s'affiche correctement.

De plus, l'application s'affiche correctement lorsqu'elle est exécutée dans la version précédente de Windows 10 build 1511 et Visual Studio 2015 Update 3.

Le problème vient donc soit de la version anniversaire, soit de la mise à jour 4 de Visual Studio 2015. (Je n'ai pas pu essayer la version anniversaire avec Visual Studio 2015 update 3 car cette dernière n'est plus disponible).

Qu'est-ce qui peut expliquer cela ?

J'ai vérifié que le app.vshost.exe.config a le même contenu que le app.exe.config et il n'y a pas de propriétés sensibles à l'IAP dans l'un ou l'autre.

Editer : J'ai lancé l'application en utilisant "Start without debugging" et puis a joint le débogueur. Le fait d'attacher le débogueur entraîne le redimensionnement de l'interface utilisateur vers une vue non mise à l'échelle en DPI élevé, c'est-à-dire que tout est en résolution d'écran native - de très petits pixels sur l'ensemble de l'interface utilisateur. Ceci est différent des deux scénarios précédents, et encore plus déroutant.

Édition 2 : Après s'être déconnecté et reconnecté, l'application s'affiche correctement. Il y a donc au moins une solution de rechange. Il est évident que l'application ne peut pas être livrée comme ça, donc je cherche toujours un moyen d'éviter le problème en premier lieu.

0voto

peterfelts Points 427

Veillez à spécifier le niveau de sensibilisation au DPI dans le manifeste de votre application ou via un appel à SetProcessDpiAwareness.

Chargez-vous du contenu WPF dans votre processus ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X