Condividi tramite


Windows Forms aggiungi elemento Configuration

L'elemento <add> aggiunge una chiave predefinita che specifica se l'app Form Windows supporta funzionalità aggiunte alle app Windows Forms in .NET Framework 4.7 o versione successiva.

Sintassi

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

Attributi ed elementi

Nelle sezioni seguenti vengono descritti gli attributi, gli elementi figlio e gli elementi padre.

Attributi

Attributo Descrizione
key Attributo obbligatorio. Nome di chiave predefinito che corrisponde a una particolare funzionalità personalizzabile Windows Forms.
value Attributo obbligatorio. Valore da assegnare a key.

key nomi di attributi e valori associati

key nome Valori Descrizione
"AnchorLayout.DisableSinglePassControlScaling" "true"|" false" Indica se i controlli ancorati vengono ridimensionati in un singolo passaggio. "true" per disabilitare la scalabilità a passaggio singolo; in caso contrario, false. Per altre informazioni, vedere la sezione "Scalabilità a passaggio singolo" nella sezione Osservazioni .
"DpiAwareness" "PerMonitorV2"|" false" Indica se un'applicazione è compatibile con DPI. Impostare la chiave su "PerMonitorV2" per supportare la consapevolezza dpi; in caso contrario, impostarlo su "false". La consapevolezza DPI è una funzionalità di consenso esplicito; per sfruttare il supporto dpi elevato di Windows Forms, è necessario impostarne il valore su "PerMonitorV2". Per altre informazioni, vedere la sezione Osservazioni.
"CheckedListBox.DisableHighDpiImprovements" "true"|" false" Indica se il controllo CheckedListBox sfrutta i miglioramenti apportati al ridimensionamento e al layout introdotti in .NET Framework 4.7. "true" per rifiutare esplicitamente i miglioramenti del ridimensionamento e del layout; in caso contrario, "false".
"DataGridView.DisableHighDpiImprovements" "true"|" false" Indica se il DataGridView miglioramenti di ridimensionamento e layout introdotti in .NET Framework 4.7. "true" per rifiutare esplicitamente la consapevolezza dpi; "false" in caso contrario.
"DisableDpiChangedMessageHandling" "true"|" false" "true" per rifiutare esplicitamente di ricevere messaggi correlati alle modifiche di ridimensionamento DPI; "false" in caso contrario. Per altre informazioni, vedere la sezione Osservazioni.
"EnableWindowsFormsHighDpiAutoResizing" "true"|" false" Indica se un'applicazione Windows Forms viene ridimensionata automaticamente a causa di modifiche al ridimensionamento DPI. "true" per abilitare il ridimensionamento automatico; in caso contrario, false.
"Form.DisableSinglePassControlScaling" "true"|" false" Indica se l'oggetto Form viene ridimensionato in un singolo passaggio. "true" per disabilitare la scalabilità a passaggio singolo; in caso contrario, false. Per altre informazioni, vedere la sezione "Scalabilità a passaggio singolo" nella sezione Osservazioni .
"MonthCalendar.DisableSinglePassControlScaling" "true"|" false" Indica se il MonthCalendar controllo viene ridimensionato in un singolo passaggio. "true" per disabilitare la scalabilità a passaggio singolo; in caso contrario, false. Per altre informazioni, vedere la sezione "Scalabilità a passaggio singolo" nella sezione Osservazioni .
"Toolstrip.DisableHighDpiImprovements" "true"|" false" Indica se il controllo ToolStrip sfrutta i miglioramenti apportati al ridimensionamento e al layout introdotti in .NET Framework 4.7. "true" per rifiutare esplicitamente la consapevolezza dpi; "false" in caso contrario.

Elementi figlio

Nessuno.

Elementi padre

Elemento Descrizione
<System.Windows.Forms.ApplicationConfigurationSection> Configura il supporto per le nuove funzionalità dell'applicazione Windows Forms.

Osservazioni:

A partire da .NET Framework 4.7, l'elemento <System.Windows.Forms.ApplicationConfigurationSection> consente di configurare Windows Forms applicazioni per sfruttare i vantaggi delle funzionalità aggiunte nelle versioni recenti di .NET Framework.

L'elemento <System.Windows.Forms.ApplicationConfigurationSection> consente di aggiungere uno o più elementi figlio <add>, ognuno dei quali definisce un'impostazione di configurazione specifica.

Per una panoramica del supporto di Windows Forms dpi elevati, vedere Supporto dpi elevato in Windows Forms.

DpiAwareness

Windows Forms app eseguite in versioni Windows a partire da Windows 10 Creators Edition e versioni di destinazione di .NET Framework a partire da .NET Framework 4.7 possono essere configurate per sfruttare i vantaggi dei miglioramenti dpi elevati introdotti in .NET Framework 4.7. tra cui:

  • Supporto per scenari DPI dinamici in cui l'utente modifica il fattore di scala o DPI dopo l'avvio di un'applicazione Windows Forms.

  • Miglioramenti del ridimensionamento e del layout di diversi controlli Windows Forms, ad esempio il controllo MonthCalendar e il controllo /CheckedListBox.

La consapevolezza dpi elevata è una funzionalità di consenso esplicito; per impostazione predefinita, il valore di DpiAwareness è false. È possibile acconsentire esplicitamente al supporto di Windows Forms per la consapevolezza dpi impostando il valore di questa chiave su PerMonitorV2 nel file di configurazione dell'applicazione. Se la consapevolezza DPI è abilitata, vengono abilitate anche tutte le singole funzionalità DPI. tra cui:

  • I messaggi con valori DPI modificati, controllati dalla DisableDpiChangedMessageHandling chiave.

  • Supporto DPI dinamico, controllato dalla EnableWindowsFormsHighDpiAutoResizing chiave.

  • Ridimensionamento del controllo a passaggio singolo, controllato da Form.DisableSinglePassControlScaling per i singoli Form controlli, dalla AnchorLayout.DisableSinglePassControlScaling chiave per i controlli ancorati e dalla MonthCalendar.DisableSinglePassControlScaling chiave per il MonthCalendar controllo

  • Miglioramenti di ridimensionamento e layout DPI elevati, controllati dal CheckListBox.DisableHighDpiImprovements tasto per il CheckedListBox controllo, dalla DataGridView.DisableHighDpiImprovements chiave per il DataGridView controllo e dal Toolstrip.DisableHighDpiImprovements tasto per il ToolStrip controllo.

L'impostazione di consenso esplicito predefinito singola fornita impostando DpiAwareness su PerMonitorV2 è in genere adeguata per le nuove applicazioni Windows Forms. Tuttavia, è possibile rifiutare esplicitamente i singoli miglioramenti dpi elevati aggiungendo la chiave corrispondente al file di configurazione dell'applicazione. Ad esempio, per sfruttare tutte le nuove funzionalità DPI ad eccezione del supporto dpi dinamico, aggiungere quanto segue al file di configurazione dell'applicazione:

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

In genere, si sceglie di rifiutare esplicitamente una particolare funzionalità perché si è scelto di gestirla a livello di codice.

Per altre informazioni sull'uso del supporto dpi elevato nelle applicazioni Windows Forms, vedere Supporto DPI elevato in Windows Forms.

AutoScaleMode

La modalità predefinita AutoScaleMode.Font ridimensiona i controlli in base alle dimensioni correnti del carattere di sistema. Le metriche dei tipi di carattere possono variare a livelli DPI diversi, quindi il ridimensionamento dei tipi di carattere potrebbe non essere lineare quando l'app viene eseguita come compatibile con DPI di sistema o compatibile con DPI v2 per monitor (vedere SystemAware e PerMonitorV2). Ciò può causare discrepanze in rapporti di altezza a larghezza. La AutoScaleMode.Dpi modalità è sempre lineare e non ha questa limitazione.

Tenere presente che determinati controlli, ad esempio TextBox e Label, usano sempre il ridimensionamento dei caratteri indipendentemente dall'impostazione AutoScaleMode . A causa di queste differenze per controllo, non è sempre semplice determinare quale modalità funziona meglio senza conoscere i requisiti di progettazione specifici.

A partire da .NET 8, quando un'app Windows Forms viene eseguita in PerMonitorV2 riconoscimento DPI, il ridimensionamento delle finestre di primo livello rispetta AutoScaleMode, migliorando la coerenza con la scalabilità dei controlli figlio. Per altre informazioni, vedere Ridimensionamento delle finestre di primo livello.

DisableDpiChangedMessageHandling

A partire da .NET Framework 4.7, Windows Forms controlli generano diversi eventi correlati alle modifiche apportate al ridimensionamento DPI. Questi includono gli DpiChangedAfterParenteventi , DpiChangedBeforeParente DpiChanged . Il valore della chiave DisableDpiChangedMessageHandling determina se questi eventi vengono generati in un'applicazione Windows Forms.

Scalabilità a passaggio singolo

Il ridimensionamento a passaggio singolo o multipasso influenza la velocità di risposta percepita dell'interfaccia utente e l'aspetto visivo degli elementi dell'interfaccia utente man mano che vengono ridimensionati. A partire da .NET Framework 4.7, Windows Forms usa il ridimensionamento a passaggio singolo. Nelle versioni precedenti di .NET Framework, il ridimensionamento è stato eseguito tramite più passaggi, il che ha causato la scalabilità di alcuni controlli più del necessario. Il ridimensionamento a passaggio singolo deve essere disabilitato solo se l'app dipende dal comportamento precedente.

Vedi anche