2010-11-25 20 views
3

Je développe une application Windows Forms à l'aide de VS2008 sous Windows Vista. J'ai essayé d'exécuter mon application sur Windows XP l'autre jour, et tout sur l'interface graphique a été foiré. Je me suis rendu compte que j'avais développé l'application en utilisant 120 Dpi sur Windows Vista et que mon XP était réglé sur 96 dpi.Problème Visual Studio et DPI

Mon application a plusieurs UserControls et tous se rétrécissent même dans Visual Studio lui-même si je change mon DPI à 96. Je suis sûr que beaucoup de gens utilisent Visual Studio en haute résolution ces jours-ci. Alors, comment faire pour que mon interface graphique ne soit pas gâchée à la fois dans Visual Studio et dans l'environnement d'exécution?

EDIT: J'ai lu quelques articles sur ce problème et j'ai appris que je devrais mettre AutoScaleMode sur None. Cependant, cela n'empêche pas mes étiquettes d'adapter de nouveaux paramètres DPI appliqués par le système d'exploitation. J'ai besoin d'un moyen d'empêcher mes étiquettes de grossir ou de rétrécir car les autres éléments de l'interface graphique ont des tailles fixes.

Répondre

0

Cela fait un moment que j'ai travaillé sur ce problème, mais essayez de définir AutoSize = False. En outre, UseCompatibleTextRendering = True peut vous aider.

0

Ceci est une question plutôt ancienne, mais je veux partager ma solution/opinion. J'ai rencontré un problème similaire récemment. En fait, je veux que Visual Studio garde mes WinForms comme ils sont, mais qu'ils évoluent au moment de l'exécution. Je n'ai trouvé aucun résumé cohérent sur la façon de le faire correctement. Après quelques lectures et expérimentations, je suis arrivé à cette solution:

  • Conserver le formulaire AutoScaleMode = Font.
  • Set dans votre Forms Designer: Font = MS Sans; 11px
  • Dans les formes Ctor, après InitializeComponent, set: Font = SystemFonts.DefaultFont
  • Activer DPI-conscience, que ce soit par le biais d'un manifeste ou par la fonction API SetProcessDPIAwareness

Depuis restes AutoScaleMode active, toutes les œuvres magiques qui changent de DPI, même la sensibilité DPI par moniteur. Ce qui reste, c'est de concevoir des formulaires de manière à ce que l'échelle fonctionne bien.

J'ai écrit les détails sur mon blog: http://www.sgrottel.de/?p=1581&lang=en