Window.SizeChanged Evento

Definizione

Si verifica quando la dimensione di rendering della finestra è cambiata.

// Register
event_token SizeChanged(TypedEventHandler<IInspectable, WindowSizeChangedEventArgs const&> const& handler) const;

// Revoke with event_token
void SizeChanged(event_token const* cookie) const;

// Revoke with event_revoker
Window::SizeChanged_revoker SizeChanged(auto_revoke_t, TypedEventHandler<IInspectable, WindowSizeChangedEventArgs const&> const& handler) const;
public event TypedEventHandler<object,WindowSizeChangedEventArgs> SizeChanged;
function onSizeChanged(eventArgs) { /* Your code */ }
window.addEventListener("sizechanged", onSizeChanged);
window.removeEventListener("sizechanged", onSizeChanged);
- or -
window.onsizechanged = onSizeChanged;
Public Custom Event SizeChanged As TypedEventHandler(Of Object, WindowSizeChangedEventArgs) 

Tipo evento

Commenti

Questo evento si verifica ogni volta che vengono apportate modifiche ai valori Bounds per la finestra. Questo potrebbe essere dovuto al fatto che l'utente ridimensiona l'app o modifica l'orientamento dello schermo mentre l'app è ingrandita. Un altro trigger è se l'utente sposta l'app in un nuovo display con una risoluzione diversa.

Gestire l'evento SizeChanged per la gestione degli elementi nell'interfaccia utente dell'app, ad esempio lo spostamento di elementi quando cambiano le dimensioni della finestra. XAML usa pixel effettivi (epx), non pixel fisici effettivi. I pixel effettivi sono un'unità virtuale di misura e vengono usati per esprimere dimensioni e spaziatura del layout, indipendentemente dalla densità dello schermo. I valori Bounds Height e Width sono gli stessi dei valori WindowSizeChangedEventArgs Height e Width, quindi è possibile usare entrambi nel gestore eventi.

Per altre info, vedi Panoramica delle finestre per WinUI e SDK per app di Windows.

Se si collega un gestore per SizeChanged a livello di pagina all'interno di un gestore per l'evento FrameworkElement.Loaded , è necessario scollegare il gestore in un gestore eventi FrameworkElement.Unloaded da tale Page. L'istanza di Window rimane attiva tra gli spostamenti di pagina e deve avere un gestore attivo solo per il codice della pagina più recente.

Orientamento

È possibile rilevare che la finestra è cambiata dall'orientamento orizzontale all'orientamento verticale o viceversa. L'orientamento della finestra potrebbe influire sulla modalità di visualizzazione dei singoli controlli all'interno dell'app. Ad esempio, è possibile visualizzare gli elenchi di dati in un controllo ListView per l'orientamento verticale, ma in un controllo GridView per l'orientamento orizzontale. In genere, è possibile confrontare il rapporto tra Width e Height per determinare l'orientamento in base ai limiti della finestra e si eseguirà questa operazione ogni volta che Window.SizeChanged si verifica. Esattamente come si interpretano Width/Height i rapporti dipende da te.

Dimensioni minime e massime

Non usare il SizeChanged gestore per applicare le dimensioni minime o massime a cui è possibile ridimensionare l'app. Usare invece queste proprietà OverlappedPresenter :

Tuttavia, la logica per modificare gli stati di visualizzazione deve essere in grado di caricare uno stato progettato per la larghezza minima prevista e in genere si usano i valori Bounds e Window.SizeChanged la gestione per rilevare quando la finestra dell'app usa la larghezza minima.

Per altre info su come usare Window.SizeChanged per rilevare le modifiche nell'ambiente della finestra dell'app e caricare gli stati di visualizzazione appropriati per la tua app, vedi Layout reattivi con XAML.

Altri eventi di modifica delle dimensioni

Esistono diversi altri eventi che è possibile usare per rilevare le modifiche alle dimensioni.

AppWindow

La classe AppWindow ha un evento Changed con il valore DidSizeChange per gli argomenti dell'evento.

A differenza della classe Window XAML, AppWindow usa il sistema di coordinate della finestra, in cui l'unità di misura di base è i pixel del dispositivo fisico. Usare quindi le API AppWindow per le azioni di finestra, ad esempio ridimensionare la finestra o spostarla in relazione a qualcos'altro sullo schermo.So use the AppWindow APIs for windowing actions, like resizing the window or moving it in relation to something else on the screen.

FrameworkElement

Esiste un altro evento denominato SizeChanged presente nei tipi derivati FrameworkElement (Window non è un tipo FrameworkElement ). Gli eventi FrameworkElement.SizeChanged possono verificarsi in molte delle stesse circostanze che causano Window.SizeChanged l'esecuzione. Una modifica delle dimensioni della finestra dell'app può causare la modifica delle dimensioni dell'elemento visivo radice (in genere una pagina o un pannello). In questo modo viene disattivata una cascata di invalidazioni di layout per tutti i sottoelementi che usano il layout adattivo per riempire lo spazio disponibile. Ogni elemento con nuove dimensioni a causa di un passaggio di layout genera il proprio evento FrameworkElement.SizeChanged .

Si applica a

Vedi anche