Compartir a través de


Windows Forms Agregar elemento de configuración

El elemento />

Sintaxis

<System.Windows.Forms.ApplicationConfigurationSection>
  <add key="key-name" value="key-value" />
</System.Windows.Forms.ApplicationConfigurationSection>

Atributos y elementos

En las siguientes secciones se describen los atributos, los elementos secundarios y los elementos primarios.

Atributos

Atributo Descripción
key Atributo necesario. Un nombre de clave predefinido que corresponde a una característica Windows Forms personalizable determinada.
value Atributo necesario. Valor que se va a asignar a key.

key nombres de atributo y valores asociados

key nombre Valores Descripción
"AnchorLayout.DisableSinglePassControlScaling" "true"|"false" Indica si los controles anclados se escalan en un solo paso. "true" para deshabilitar el escalado de paso único; De lo contrario, false. Consulte la sección "Escalado de paso único" en los comentarios para obtener más información.
"DpiAwareness" "PerMonitorV2"|"false" Indica si una aplicación es compatible con PPP. Establezca la clave en "PerMonitorV2" para admitir el reconocimiento de PPP; De lo contrario, establézcalo en "false". El reconocimiento de PPP es una característica de participación; para aprovechar las ventajas de la compatibilidad con valores altos de PPP de Windows Forms, debe establecer su valor en "PerMonitorV2". Consulte la sección Comentarios para obtener más información.
"CheckedListBox.DisableHighDpiImprovements" "true"|"false" Indica si el control CheckedListBox aprovecha las mejoras de escalado y diseño introducidas en .NET Framework 4.7. "true" para no participar en las mejoras de escalado y diseño; De lo contrario, "false".
"DataGridView.DisableHighDpiImprovements" "true"|"false" Indica si la DataGridView control de escalado y diseño de mejoras introducidas en .NET Framework 4.7. "true" para no recibir reconocimiento de PPP; De lo contrario, "false".
"DisableDpiChangedMessageHandling" "true"|"false" "true" para no recibir mensajes relacionados con los cambios de escalado de PPP; De lo contrario, "false". Consulte la sección Comentarios para obtener más información.
"EnableWindowsFormsHighDpiAutoResizing" "true"|"false" Indica si se cambia automáticamente el tamaño de una aplicación de Windows Forms debido a los cambios de escalado de PPP. "true" para habilitar el cambio de tamaño automático; De lo contrario, false.
"Form.DisableSinglePassControlScaling" "true"|"false" Indica si Form se escala en un solo paso. "true" para deshabilitar el escalado de paso único; De lo contrario, false. Consulte la sección "Escalado de paso único" en los comentarios para obtener más información.
"MonthCalendar.DisableSinglePassControlScaling" "true"|"false" Indica si el MonthCalendar control se escala en un solo paso. "true" para deshabilitar el escalado de paso único; De lo contrario, false. Consulte la sección "Escalado de paso único" en los comentarios para obtener más información.
"Toolstrip.DisableHighDpiImprovements" "true"|"false" Indica si el control ToolStrip aprovecha las mejoras de escalado y diseño introducidas en .NET Framework 4.7. "true" para no recibir reconocimiento de PPP; De lo contrario, "false".

Elementos secundarios

Ninguno.

Elementos primarios

Elemento Descripción
<System.Windows.Forms.ApplicationConfigurationSection> Configura la compatibilidad con las nuevas características de la aplicación de Windows Forms.

Comentarios

A partir de .NET Framework 4.7, el elemento <System.Windows.Forms.ApplicationConfigurationSection> permite configurar aplicaciones de Windows Forms para aprovechar las características agregadas en las versiones recientes de .NET Framework.

El elemento <System.Windows.Forms.ApplicationConfigurationSection> permite agregar uno o varios elementos secundarios <add>, cada uno de los cuales define un valor de configuración específico.

Para obtener información general sobre Windows Forms compatibilidad con valores altos de PPP, consulte High PPP Support in Windows Forms.

DpiAwareness

Windows Forms aplicaciones que se ejecutan en versiones de Windows a partir de Windows 10 Creators Edition y versiones de destino de .NET Framework a partir de .NET Framework 4.7 se pueden configurar para aprovechar las mejoras de PPP elevadas introducidas en .NET Framework 4.7. Entre ellas se incluyen las siguientes:

  • Compatibilidad con escenarios de PPP dinámicos en los que el usuario cambia el valor de PPP o el factor de escala después de iniciar una aplicación de Windows Forms.

  • Mejoras en el escalado y diseño de varios controles de Windows Forms, como el control /MonthCalendar y el control CheckedListBox.

El reconocimiento de valores altos de PPP es una característica de participación; de forma predeterminada, el valor de DpiAwareness es false. Puede participar en la compatibilidad de Windows Forms para el reconocimiento de PPP estableciendo el valor de esta clave en PerMonitorV2 en el archivo de configuración de la aplicación. Si el reconocimiento de PPP está habilitado, también se habilitan todas las características individuales de PPP. Entre ellas se incluyen las siguientes:

  • Mensajes modificados por PPP, que se controlan mediante la DisableDpiChangedMessageHandling clave.

  • Compatibilidad dinámica con PPP, que se controla mediante la EnableWindowsFormsHighDpiAutoResizing clave.

  • Escalado de control de paso único, controlado por para Form.DisableSinglePassControlScaling controles individuales Form , por la AnchorLayout.DisableSinglePassControlScaling clave para los controles delimitados y por la MonthCalendar.DisableSinglePassControlScaling clave para el MonthCalendar control

  • Mejoras de diseño y escalado de PPP altos, que se controla mediante la CheckListBox.DisableHighDpiImprovements clave para el CheckedListBox control, por la DataGridView.DisableHighDpiImprovements clave del DataGridView control y por la Toolstrip.DisableHighDpiImprovements clave del ToolStrip control.

La configuración de participación predeterminada única proporcionada estableciendo DpiAwareness en PerMonitorV2 suele ser adecuada para las nuevas aplicaciones de Windows Forms. Sin embargo, puede optar por no participar en mejoras individuales de valores altos de PPP agregando la clave correspondiente al archivo de configuración de la aplicación. Por ejemplo, para aprovechar todas las nuevas características de PPP, excepto la compatibilidad dinámica con PPP, agregaría lo siguiente al archivo de configuración de la aplicación:

<System.Windows.Forms.ApplicationConfigurationSection>
   <add key="DpiAwareness" value="PerMonitorV2" />
   <!-- Disable dynamic DPI support -->
   <add key="EnableWindowsFormsHighDpiAutoResizing" value="false" />
</System.Windows.Forms.ApplicationConfigurationSection>

Normalmente, no participa en una característica determinada porque ha elegido controlarla mediante programación.

Para obtener más información sobre cómo aprovechar la compatibilidad con valores altos de PPP en aplicaciones de Windows Forms, consulte High PPP Support in Windows Forms.

AutoScaleMode

El modo predeterminado AutoScaleMode.Font escala los controles en función del tamaño de fuente del sistema actual. Las métricas de fuente pueden variar en distintos niveles de PPP, por lo que el escalado de fuentes podría no ser lineal cuando la aplicación se ejecuta como compatible con PPP del sistema o con reconocimiento por PPP por monitor (vea SystemAware y PerMonitorV2). Esto puede provocar discrepancias en las relaciones de alto a ancho. El AutoScaleMode.Dpi modo siempre es lineal y no tiene esta limitación.

Tenga en cuenta que determinados controles, como TextBox y Label, siempre usan el escalado de fuentes independientemente de la AutoScaleMode configuración. Debido a estas diferencias por control, no siempre es sencillo determinar qué modo funciona mejor sin conocer sus requisitos de diseño específicos.

A partir de .NET 8, cuando una aplicación de Windows Forms se ejecuta en PerMonitorV2 reconocimiento de PPP, el ajuste de tamaño de ventana de nivel superior respeta AutoScaleMode, lo que mejora la coherencia con la escala de controles secundarios. Para obtener más información, consulte Escalado de ventanas de nivel superior.

DisableDpiChangedMessageHandling

A partir de .NET Framework 4.7, los controles de Windows Forms generan una serie de eventos relacionados con los cambios en el escalado de PPP. Estos incluyen los DpiChangedAfterParenteventos , DpiChangedBeforeParenty DpiChanged . El valor de la clave DisableDpiChangedMessageHandling determina si estos eventos se generan en una aplicación de Windows Forms.

Escalado de paso único

El escalado de uno o varios pasos influye en la capacidad de respuesta percibida de la interfaz de usuario y la apariencia visual de los elementos de la interfaz de usuario a medida que se escalan. A partir de .NET Framework 4.7, Windows Forms usa el escalado de paso único. En versiones anteriores de .NET Framework, el escalado se realizó a través de varios pasos, lo que provocó que algunos controles se escalasen más de lo necesario. El escalado de un solo paso solo debe deshabilitarse si la aplicación depende del comportamiento anterior.

Consulte también