Maison > développement back-end > C++ > Pourquoi mon application DPI-UNAWARE présente-t-elle soudainement une distorsion de l'interface utilisateur après la mise à jour du système au courant?

Pourquoi mon application DPI-UNAWARE présente-t-elle soudainement une distorsion de l'interface utilisateur après la mise à jour du système au courant?

Barbara Streisand
Libérer: 2025-01-28 09:06:11
original
1107 Les gens l'ont consulté

Why Does My DPI-Unaware Application Suddenly Exhibit UI Distortion After Updating to System Aware?

DPI Sensibilisation: Windows Bitmap Scaling (6.0) vs System Aware (6.1)

Cette étude de cas examine une application initialement conçue comme DPI-UNAWARE, en s'appuyant sur la mise à l'échelle de Bitmap Windows pour les écrans à DPI élevés. Une mise à jour de la version 6.1 a modifié de façon inattendue sa conscience du DPI à conscience du système, ce qui entraîne une distorsion de l'interface utilisateur.

Dépannage du problème

La cause profonde est un composant tiers nouvellement inclus dans la version mise à jour. Malgré la conscience inhérente de la DPI-UNAW, le composant tiers a introduit la sensibilisation au DPI.

Gérer la conscience du DPI

La sensibilisation au DPI peut être explicitement contrôlée dans le manifeste de l'application:

<application>
  <windowsSettings>
    <dpiAware>false</dpiAware>
  </windowsSettings>
</application>
Copier après la connexion

Alternativement, les API Windows offrent un contrôle programmatique:

SetProcessDPIAware();
GetAwarenessFromDpiAwarenessContext(GetWindowDpiAwarenessContext(hWnd));
Copier après la connexion

Solution

Pour revenir à DPI-UNAWARED, Ajoutez <dpiAware>false</dpiAware> au manifeste de l'application. Si un composant tiers force la conscience du DPI, envisagez d'ajouter System.Windows.Media.DisableDpiAwareness à AssemblyInfo.cs pour remplacer le comportement indésirable.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal