Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Versione introdotta: .NET 9
Rimuovere le impostazioni DPI elevate da app.manifest e configurare tramite l'API Application.SetHighDpiMode o tramite la proprietà del progetto
ApplicationHighDpiMode.
Le applicazioni Windows Forms devono specificare la consapevolezza del DPI dell'applicazione tramite la configurazione dell'applicazione o con l'API Application.SetHighDpiMode.
Esempio
Il progetto contiene un file app.manifest con l'impostazione <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>
Per correggere l'avviso
Le applicazioni Windows Forms devono specificare la consapevolezza del DPI dell'applicazione tramite la configurazione dell'applicazione o con l'API Application.SetHighDpiMode.
Uso di C#
Chiamare il metodo ApplicationConfiguration.Initialize prima di Application.Run().
class Program
{
[STAThread]
static void Main()
{
ApplicationConfiguration.Initialize();
Application.Run(new Form1());
}
}
Il ApplicationConfiguration.Initialize metodo viene generato quando l'app viene compilata, in base alle impostazioni nel file di progetto dell'app. Ad esempio, esaminare le impostazioni seguenti <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>
Queste impostazioni generano il metodo seguente:
[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));
}
}
Uso di Visual Basic
Visual Basic imposta la modalità DPI elevato in due posizioni. La prima è nelle proprietà del progetto, che influisce su Visual Studio Designer, ma non influisce sull'app in fase di esecuzione.
<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>
Il secondo posto è nelle impostazioni di Visual Basic Application Framework. Si trovano nella pagina delle proprietà del progetto, in Application>Framework. Queste impostazioni vengono salvate nel file My Project\Application.myapp o in un gestore eventi di avvio dell'applicazione.
Impostazione del tipo di carattere in Visual Basic
Il tipo di carattere di runtime, tuttavia, non è configurabile in Visual Basic tramite un'impostazione dell'app o il file di progetto. Deve essere impostato nel ApplyApplicationDefaults gestore eventi.
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
Gestisci l'avviso
Eliminare l'avviso con uno dei metodi seguenti:
Imposta la gravità della regola nel file .editorConfig.
[*.{cs,vb}] dotnet_diagnostic.WFO0003.severity = nonePer altre informazioni sui file di configurazione dell'editor, vedere File di configurazione per le regole di analisi del codice.
Aggiungi il seguente
PropertyGroupal file di progetto:<PropertyGroup> <NoWarn>$(NoWarn);WFO0003</NoWarn> </PropertyGroup>Sopprimere il codice con la direttiva
#pragma warning disable WFO0003.
.NET Desktop feedback