Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eingeführt in Version: .NET 9
Entfernen Sie die hohen DPI-Einstellungen aus app.manifest und konfigurieren Sie über die Application.SetHighDpiMode-API oder die
ApplicationHighDpiMode-Projekteigenschaft.
Windows Forms-Anwendungen sollten anwendungsbezogene DPI-Informationen über die Anwendungskonfiguration oder mithilfe der Application.SetHighDpiMode-API angeben.
Beispiel
Ihr Projekt enthält eine app.manifest Datei mit der <dpiAware> Einstellung:
<?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>
Um diese Warnung zu korrigieren
Windows Forms-Anwendungen sollten anwendungsbezogene DPI-Informationen über die Anwendungskonfiguration oder mithilfe der Application.SetHighDpiMode-API angeben.
Verwenden von C#
Rufen Sie die ApplicationConfiguration.Initialize Methode vor Application.Run().
class Program
{
[STAThread]
static void Main()
{
ApplicationConfiguration.Initialize();
Application.Run(new Form1());
}
}
Die ApplicationConfiguration.Initialize-Methode wird beim Kompilieren Ihrer App basierend auf den Einstellungen in der Projektdatei der App generiert. Sehen Sie sich beispielsweise die folgenden <Application*>-Einstellungen an:
<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>
Diese Einstellungen generieren die folgende Methode:
[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));
}
}
Verwenden von Visual Basic
Visual Basic legt den Modus für hohen DPI-Wert an zwei Stellen fest. Die erste befindet sich in den Projekteigenschaften, die sich auf den Visual Studio-Designer auswirken, sich aber nicht auf die App zur Laufzeit auswirken.
<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>
Der zweite Platz befindet sich in den Visual Basic Application Framework-Einstellungen. Diese befinden sich auf der Projekteigenschaftenseite unter Application>Application Framework. Diese Einstellungen werden in der Datei "My Project\Application.myapp " oder in einem Anwendungsstartereignishandler gespeichert.
Festlegen der Schriftart in Visual Basic
Die Laufzeitschriftart kann jedoch in Visual Basic nicht über eine App-Einstellung oder die Projektdatei konfiguriert werden. Er muss im ApplyApplicationDefaults Ereignishandler festgelegt werden.
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
Verwalten der Warnung
Unterdrücken Sie die Warnung mit einer der folgenden Methoden:
Legen Sie den Schweregrad der Regel in der .editorConfig-Datei fest.
[*.{cs,vb}] dotnet_diagnostic.WFO0003.severity = noneWeitere Informationen zu Editorkonfigurationsdateien finden Sie unter Konfigurationsdateien für Codeanalyseregeln.
Fügen Sie das folgende
PropertyGroupzu Ihrer Projektdatei hinzu:<PropertyGroup> <NoWarn>$(NoWarn);WFO0003</NoWarn> </PropertyGroup>Unterdrücken Sie im Code mit der
#pragma warning disable WFO0003-Anweisung.
.NET Desktop feedback