Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Version présentée : .NET 9
Supprimez les paramètres DPI élevés de app.manifest et configurez via l’API Application.SetHighDpiMode ou la propriété de projet
ApplicationHighDpiMode.
Les applications Windows Forms doivent spécifier la prise en charge DPI d’application par le biais de la configuration de l’application ou de l’API Application.SetHighDpiMode.
Exemple :
Votre projet contient un fichier app.manifest avec le paramètre <dpiAware> :
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<!-- other settings omitted for brevity -->
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
</assembly>
Pour corriger cet avertissement
Les applications Windows Forms doivent spécifier la prise en charge DPI d’application par le biais de la configuration de l’application ou de l’API Application.SetHighDpiMode.
Utilisation de C#
Appelez la ApplicationConfiguration.Initialize méthode avant Application.Run().
class Program
{
[STAThread]
static void Main()
{
ApplicationConfiguration.Initialize();
Application.Run(new Form1());
}
}
La ApplicationConfiguration.Initialize méthode est générée lorsque votre application compile, en fonction des paramètres du fichier projet de l’application. Par exemple, examinez les paramètres suivants <Application*> :
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net9.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
<ApplicationHighDpiMode>SystemAware</ApplicationHighDpiMode>
<ApplicationVisualStyles>true</ApplicationVisualStyles>
<ApplicationUseCompatibleTextRendering>false</ApplicationUseCompatibleTextRendering>
<ApplicationDefaultFont>Microsoft Sans Serif, 8.25pt</ApplicationDefaultFont>
</PropertyGroup>
</Project>
Ces paramètres génèrent la méthode suivante :
[CompilerGenerated]
internal static partial class ApplicationConfiguration
{
public static void Initialize()
{
global::System.Windows.Forms.Application.EnableVisualStyles();
global::System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
global::System.Windows.Forms.Application.SetHighDpiMode(HighDpiMode.SystemAware);
global::System.Windows.Forms.Application.SetDefaultFont(new Font(new FontFamily("Microsoft Sans Serif"), 8.25f, (FontStyle)0, (GraphicsUnit)3));
}
}
Utilisation de Visual Basic
Visual Basic définit le mode DPI élevé en deux emplacements. La première est dans les propriétés du projet, qui affecte le Concepteur Visual Studio, mais n’affecte pas l’application au moment de l’exécution.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net9.0-windows</TargetFramework>
<StartupObject>Sub Main</StartupObject>
<UseWindowsForms>true</UseWindowsForms>
<MyType>WindowsForms</MyType>
<ApplicationHighDpiMode>SystemAware</ApplicationHighDpiMode>
<ApplicationVisualStyles>false</ApplicationVisualStyles>
<ApplicationUseCompatibleTextRendering>false</ApplicationUseCompatibleTextRendering>
<ApplicationDefaultFont>Microsoft Sans Serif, 8.25pt</ApplicationDefaultFont>
</PropertyGroup>
</Project>
La deuxième place se trouve dans les paramètres de Visual Basic Application Framework. Elles se trouvent dans la page des propriétés du projet, sous Application>Application Framework. Ces paramètres sont enregistrés dans le fichier My Project\Application.myapp ou dans un gestionnaire d’événements de démarrage d’application.
Définition de la police dans Visual Basic
Toutefois, la police d’exécution n’est pas configurable dans Visual Basic via un paramètre d’application ou le fichier projet. Elle doit être définie dans le gestionnaire d’événements ApplyApplicationDefaults .
Imports Microsoft.VisualBasic.ApplicationServices
Namespace My
Partial Friend Class MyApplication
Private Sub MyApplication_ApplyApplicationDefaults(sender As Object, e As ApplyApplicationDefaultsEventArgs) Handles Me.ApplyApplicationDefaults
e.HighDpiMode = HighDpiMode.SystemAware
e.Font = New Font("Microsoft Sans Serif", 8.25)
End Sub
End Class
End Namespace
Gérer l’avertissement
Supprimez l’avertissement avec l’une des méthodes suivantes :
Définissez la gravité de la règle dans le fichier .editorConfig .
[*.{cs,vb}] dotnet_diagnostic.WFO0003.severity = nonePour plus d’informations sur les fichiers de configuration de l’éditeur, consultez Les fichiers de configuration pour les règles d’analyse du code.
Ajoutez les
PropertyGroupsuivantes à votre fichier projet :<PropertyGroup> <NoWarn>$(NoWarn);WFO0003</NoWarn> </PropertyGroup>Effectuez la suppression dans le code avec la directive
#pragma warning disable WFO0003.
.NET Desktop feedback