C# mise à l'Échelle UserControl contenu de façon à correspondre aux utilisateurs Dpi/Taille de la Police
Comment puis-je obtenir mon OwnerDrawn UserControl à respecter les utilisateurs de ppp (96/120/xxx) et/ou une taille de police (normal, large, extra large)?
Certaines personnes suggèrent d'utiliser la cascade dpix et DpiY propriétés sur un objet Graphique, mais qui ne semble pas pour rien dans mon contrôle (c'est à dire qu'ils sont toujours ensemble à 96, indépendamment de la taille de police ou dpi-je choisir).
Il y a une autre question similaire ici sur StackOverflow où il suggère d'utiliser la AutoScale propriétés, mais les solutions proposées ne sont pas vraiment tout faire.
Il n'y a pas moyen de le faire .NET sauf s'appuyant sur WPF?
OriginalL'auteur | 2009-02-21
Vous devez vous connecter pour publier un commentaire.
Vous devez définir la AutoScaleMode propriété de l'objet UserControl AutoScaleMode.Dpi, et pas définir la AutoScale true à la propriété. Si vous le faites, il sera réinitialisé le AutoScaleMode en Aucun. L'AutoScale propriété est obsolète et n'est là que pour assurer la compatibilité ascendante (voir la Remarque Importante dans ce Article MSDN).
Aussi, dans Windows Vista/7, sauf si vous spécifiez explicitement que votre application est reconnaissant PPP, Windows va émuler un défaut DPI environnement, de sorte que votre application effectue avec 96 DPI, puis à l'échelle de l'image résultante à la taille appropriée. Pour éviter cela, vous pouvez modifier votre demande manifeste pour l'informer de Windows que vous êtes en fait en PPP au courant - voir le à l'Aide de manifester à déclarer DPI sensibilisation section dans cet article.
OriginalL'auteur Allon Guralnek
J'ai le même problème, j'ai essayé d'utiliser GetDC + GetDeviceCaps + ReleaseDC, à l'exception de l'utilisation des Graphiques travaillé, au moins sur Vista32. Je ne suis pas expérimenté avec le DPI, mais personne n'avait répondu à cette question, et à moins cela pourrait être utile pour les autres.
Découvrez La création d'un DPI-Connaissance de l'Application. Cette mention pourquoi il pourrait toujours revenir 96 sans tenir compte du réglage DPI.
Citation du lien ci-dessus:
Une réponse à partir de: Au sujet de DPI Problème
Exemple de code réécrit avec à l'aide de-déclaration (original source):
OriginalL'auteur CS.