Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Versión introducida: .NET 9
Quite los valores altos de PPP de app.manifest y configúrelos a través de la API de Application.SetHighDpiMode o de la propiedad del proyecto
ApplicationHighDpiMode.
Las aplicaciones de Windows Forms deben especificar el reconocimiento de DPI de la aplicación a través de la configuración de la aplicación o con la API Application.SetHighDpiMode.
Ejemplo
El proyecto contiene un archivo app.manifest con la configuración <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>
Para corregir esta advertencia
Las aplicaciones de Windows Forms deben especificar el reconocimiento de DPI de la aplicación a través de la configuración de la aplicación o con la API Application.SetHighDpiMode.
Usando C#
Llame al método ApplicationConfiguration.Initialize antes de Application.Run().
class Program
{
[STAThread]
static void Main()
{
ApplicationConfiguration.Initialize();
Application.Run(new Form1());
}
}
El ApplicationConfiguration.Initialize método se genera cuando la aplicación se compila, en función de la configuración del archivo de proyecto de la aplicación. Por ejemplo, examine la siguiente <Application*> configuración:
<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>
Esta configuración genera el método siguiente:
[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 de Visual Basic
Visual Basic establece el modo de valores altos de PPP en dos lugares. La primera se encuentra en las propiedades del proyecto, que afecta al Diseñador de Visual Studio, pero no afecta a la aplicación en tiempo de ejecución.
<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>
El segundo lugar se encuentra en la configuración del Marco de Aplicaciones de Visual Basic. Se encuentran en la página de propiedades del proyecto, en Application>Application Framework. Esta configuración se guarda en el archivo My Project\Application.myapp o en un controlador de eventos de inicio de la aplicación.
Establecimiento de la fuente en Visual Basic
Sin embargo, la fuente en tiempo de ejecución no se puede configurar en Visual Basic a través de una configuración de aplicación o el archivo de proyecto. Debe establecerse en el controlador 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
Administrar la advertencia
Suprima la advertencia con cualquiera de los métodos siguientes:
Establezca la gravedad de la regla en el archivo .editorConfig .
[*.{cs,vb}] dotnet_diagnostic.WFO0003.severity = nonePara obtener más información sobre los archivos de configuración del editor, consulte Archivos de configuración para reglas de análisis de código.
Agregue el siguiente
PropertyGroupal archivo del proyecto:<PropertyGroup> <NoWarn>$(NoWarn);WFO0003</NoWarn> </PropertyGroup>Suprima en el código con la directiva
#pragma warning disable WFO0003.
.NET Desktop feedback