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.
Introducerad version: .NET 9
Ta bort höga DPI-inställningar från app.manifest och konfigurera via Application.SetHighDpiMode API eller
ApplicationHighDpiModeprojektegenskap.
Windows Forms-applikationer bör ställa in applikationens DPI-medvetenhet antingen via programkonfiguration eller med Application.SetHighDpiMode API.
Exempel
Projektet innehåller en app.manifest fil med inställningen <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>
Så här korrigerar du den här varningen
Windows Forms-applikationer bör ställa in applikationens DPI-medvetenhet antingen via programkonfiguration eller med Application.SetHighDpiMode API.
Använda C#
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>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>
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 anger läget Hög DPI på två platser. Den första är i projektegenskaperna, som påverkar Visual Studio Designer-verktyget, men inte appen vid exekvering.
<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>
Den andra platsen finns i Visual Basic Application Framework-inställningarna. Dessa finns på sidan projektegenskaper under Application>Application Framework. De här inställningarna sparas i My Project\Application.myapp fil eller i en händelsehanterare för programstart.
Ange teckensnittet i Visual Basic
Körningsteckensnittet kan dock inte konfigureras i Visual Basic via en appinställning eller projektfilen. Den måste anges i ApplyApplicationDefaults-händelsehanteraren.
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
Hantera varningen
Ignorera varningen med någon av följande metoder:
Ange allvarlighetsgraden för regeln i filen .editorConfig.
[*.{cs,vb}] dotnet_diagnostic.WFO0003.severity = noneMer information om redigeringskonfigurationsfiler finns i Konfigurationsfiler för kodanalysregler.
Lägg till följande
PropertyGroupi projektfilen:<PropertyGroup> <NoWarn>$(NoWarn);WFO0003</NoWarn> </PropertyGroup>Undertryck i kod med
#pragma warning disable WFO0003-direktivet.
.NET Desktop feedback