Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Version introducerad: .NET 6
Ta bort höga DPI-inställningar från app.manifest och konfigurera via
Application.SetHighDpiModeAPI ellerApplicationHighDpiModeprojektegenskap.
Windows Forms-applikationer bör ställa in applikationens DPI-medvetenhet antingen via programkonfiguration eller med Application.SetHighDpiMode API.
Viktigt!
Från och med .NET 9 har varningen ändrats till WFO0003.
Lösningar
Använda C#
Använd nya bootstrap-API:et genom att anropa metoden ApplicationConfiguration.Initialize innan Application.Run().
class Program
{
[STAThread]
static void Main()
{
ApplicationConfiguration.Initialize();
Application.Run(new Form1());
}
}
Metoden ApplicationConfiguration.Initialize genereras när appen kompileras, baserat på inställningarna i appens projektfil. Titta till exempel på följande <Application*> inställningar:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWindowsForms>true</UseWindowsForms>
<ImplicitUsings>enable</ImplicitUsings>
<ApplicationVisualStyles>true</ApplicationVisualStyles>
<ApplicationUseCompatibleTextRendering>false</ApplicationUseCompatibleTextRendering>
<ApplicationHighDpiMode>SystemAware</ApplicationHighDpiMode>
<ApplicationDefaultFont>Microsoft Sans Serif, 8.25pt</ApplicationDefaultFont>
</PropertyGroup>
</Project>
De här inställningarna genererar följande metod:
[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));
}
}
Använda Visual Basic
Visual Basic fungerar lite annorlunda än C# just nu. Inställningarna för projektfilen krävs för att Visual Studio ska kunna identifiera programinställningarna, men du måste också konfigurera inställningarna på projektets egenskapssida Application>Application Framework (som påverkar My Project\Application.myapp-filen) eller i starthändelserna för programmet.
Viktigt!
Teckensnitt kan inte ställas in i projektegenskaperna.
I följande kodexempel visas hur du hanterar händelsen ApplyApplicationDefaults för att konfigurera standardteckensnittet och HighDPI-läget:
Imports Microsoft.VisualBasic.ApplicationServices
Namespace My
Partial Friend Class MyApplication
Private Sub MyApplication_ApplyApplicationDefaults(sender As Object, e As ApplyApplicationDefaultsEventArgs) Handles Me.ApplyApplicationDefaults
e.Font = New Font("Microsoft Sans Serif", 8.25)
e.HighDpiMode = HighDpiMode.SystemAware
End Sub
End Class
End Namespace
Hantera varningen
Ignorera varningen med någon av följande metoder:
Ange allvarlighetsgraden för regeln i filen .editorConfig.
[*.{cs,vb}] dotnet_diagnostic.WFAC010.severity = noneMer information om redigeringskonfigurationsfiler finns i Konfigurationsfiler för kodanalysregler.
Lägg till följande
PropertyGroupi projektfilen:<PropertyGroup> <NoWarn>$(NoWarn);WFAC010</NoWarn> </PropertyGroup>Undertryck i kod med
#pragma warning disable WFAC010-direktivet.
.NET Desktop feedback