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
1005 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:

<code class="language-xml"><application>
  <windowsSettings>
    <dpiAware>false</dpiAware>
  </windowsSettings>
</application></code>
Copier après la connexion

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

<code class="language-csharp">SetProcessDPIAware();
GetAwarenessFromDpiAwarenessContext(GetWindowDpiAwarenessContext(hWnd));</code>
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!

source:php.cn
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