Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Versão introduzida: .NET 9
Remova as configurações de DPI altas de app.manifest e defina por meio da API Application.SetHighDpiMode ou da propriedade do projeto
ApplicationHighDpiMode.
Os aplicativos do Windows Forms devem especificar o reconhecimento dos DPI do aplicativo pela configuração do aplicativo ou com a API Application.SetHighDpiMode.
Exemplo
Seu projeto contém um app.manifest arquivo com a <dpiAware> configuração:
<?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>
Para corrigir este aviso
Os aplicativos do Windows Forms devem especificar o reconhecimento dos DPI do aplicativo pela configuração do aplicativo ou com a API Application.SetHighDpiMode.
Usando C#
Chame o método antes de ApplicationConfiguration.InitializeApplication.Run().
class Program
{
[STAThread]
static void Main()
{
ApplicationConfiguration.Initialize();
Application.Run(new Form1());
}
}
O ApplicationConfiguration.Initialize método é gerado quando o aplicativo é compilado, com base nas configurações no arquivo de projeto do aplicativo. Por exemplo, observe as seguintes <Application*> configurações:
<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>
Essas configurações geram o seguinte método:
[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));
}
}
Usando o Visual Basic
O Visual Basic define o modo de DPI alto em dois locais. A primeira está nas propriedades do projeto, que afeta o Visual Studio Designer, mas não afeta o aplicativo em tempo de execução.
<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>
O segundo lugar está nas configurações do Visual Basic Application Framework. Eles estão na página de propriedades do projeto, em Application>Application Framework. Essas configurações são salvas no arquivo My Project\Application.myapp ou em um manipulador de eventos de inicialização do aplicativo.
Definindo a fonte no Visual Basic
A fonte de tempo de execução, no entanto, não é configurável no Visual Basic por meio de uma configuração de aplicativo ou do arquivo de projeto. Ele deve ser definido no manipulador de ApplyApplicationDefaults eventos.
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
Gerenciar o aviso
Suprime o aviso com qualquer um dos seguintes métodos:
Defina a gravidade da regra no arquivo .editorConfig .
[*.{cs,vb}] dotnet_diagnostic.WFO0003.severity = nonePara obter mais informações sobre arquivos de configuração do editor, consulte Arquivos de configuração para regras de análise de código.
Adicione o seguinte
PropertyGroupao arquivo de projeto:<PropertyGroup> <NoWarn>$(NoWarn);WFO0003</NoWarn> </PropertyGroup>Suprimir no código com a diretiva
#pragma warning disable WFO0003.
.NET Desktop feedback