Fordító – figyelmeztetés WFAC010

Bevezetett verzió: .NET 6

Távolítsa el a magas DPI-beállításokat az app.manifest fájlból, és konfigurálja Application.SetHighDpiMode API-val vagy ApplicationHighDpiMode projekttulajdonságokkal.

A Windows Forms-alkalmazásoknak az alkalmazáskonfigurációs vagy a Application.SetHighDpiMode API használatával kell megadniuk az alkalmazás DPI-tudatosságát.

Fontos

A .NET 9-től kezdve ez a figyelmeztetés WFO0003lett.

Áthidaló megoldások

C# használata

Használja az új bootstrap API- a ApplicationConfiguration.Initialize metódus meghívásával Application.Run()előtt.

class Program
{
    [STAThread]
    static void Main()
    {
        ApplicationConfiguration.Initialize();
        Application.Run(new Form1());
    }
}

A ApplicationConfiguration.Initialize metódus az alkalmazás fordításakor jön létre az alkalmazás projektfájljának beállításai alapján. Tekintse meg például a következő <Application*> beállításokat:

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

Ezek a beállítások a következő metódust generálják:

[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));
    }
}

A Visual Basic használata

A Visual Basic egy kicsit másként működik, mint a C# jelenleg. A projektfájl beállításaira szükség van ahhoz, hogy a Visual Studio észlelje az alkalmazásbeállításokat, de konfigurálnia kell a beállításokat a projekt tulajdonságlapján Alkalmazás>Application Framework (amely hatással van a My Project\Application.myapp fájlra) vagy az alkalmazás indítási eseményeiben.

Fontos

A betűtípus nem állítható be a projekt tulajdonságai között.

Az alábbi példakód bemutatja az ApplyApplicationDefaults esemény kezelését az alapértelmezett betűtípus és HighDPI mód konfigurálásához:

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

A figyelmeztetés kezelése

Tiltsa le a figyelmeztetést az alábbi módszerek valamelyikével:

  • Adja meg a szabály súlyosságát a .editorConfig fájlban.

    [*.{cs,vb}]
    dotnet_diagnostic.WFAC010.severity = none
    

    További információ a szerkesztő konfigurációs fájljairól: A kódelemzési szabályok konfigurációs fájljai.

  • Adja hozzá a következő PropertyGroup a projektfájlhoz:

    <PropertyGroup>
        <NoWarn>$(NoWarn);WFAC010</NoWarn>
    </PropertyGroup>
    
  • Rejtse el a kódban a #pragma warning disable WFAC010 irányelvvel.