Window.SizeChanged Ereignis

Definition

Tritt auf, wenn sich die Renderinggröße des Fensters geändert hat.

// 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) 

Ereignistyp

Hinweise

Dieses Ereignis tritt auf, wenn änderungen an den Begrenzungswerten für das Fenster vorhanden sind. Dies liegt möglicherweise daran, dass der Benutzer die Größe der App ändert oder die Anzeigeausrichtung ändert, während die App maximiert ist. Ein weiterer Auslöser ist, wenn der Benutzer Ihre App auf eine neue Anzeige verschiebt, die eine andere Auflösung aufweist.

Behandeln Sie das SizeChanged Ereignis zum Verwalten von Elementen in der App-UI, z. B. das Verschieben von Elementen, wenn sich die Fenstergröße ändert. XAML verwendet effektive Pixel (Epx), nicht tatsächliche physische Pixel. Effektive Pixel sind eine virtuelle Maßeinheit und werden verwendet, um Layoutabmessungen und Abstände unabhängig von der Bildschirmdichte auszudrücken. Die Werte "Bounds Height" und "Width" sind identisch mit den Werten "WindowSizeChangedEventArgs Height" und "Width", sodass Sie beide im Ereignishandler verwenden können.

Weitere Informationen finden Sie unter "Windowing overview" für WinUI und Windows App SDK.

Wenn Sie einen Handler auf SizeChangedSeitenebene innerhalb eines Handlers für das FrameworkElement.Loaded-Ereignis anfügen, sollten Sie den Handler in einem FrameworkElement.Unloaded-Ereignishandler von dieser Seite trennen. Die Window-Instanz bleibt zwischen Seitennavigationen aktiv und sollte nur für den aktuellen Seitencode einen Handler aktiv haben.

Orientierung

Möglicherweise möchten Sie feststellen, dass sich das Fenster von Querformat in Hochformat geändert hat oder umgekehrt. Die Fensterausrichtung kann beeinflussen, wie die einzelnen Steuerelemente in der App angezeigt werden sollen. Beispielsweise möchten Sie Datenlisten in einem ListView-Steuerelement für hochformatieren, aber in einer GridView für Querformatausrichtung anzeigen. In der Regel würden Sie das Verhältnis von Width "zu Height " vergleichen, um die Ausrichtung basierend auf den Fenstergrenzen zu bestimmen, und dies geschieht bei jedem Auftreten Window.SizeChanged . Genau wie Sie Verhältnisse interpretieren Width/Height , liegt bei Ihnen.

Minimale und maximale Größe

Verwenden Sie den SizeChanged Handler nicht, um die Minimale oder maximale Größe zu erzwingen, auf die Ihre App angepasst werden kann. Verwenden Sie stattdessen diese OverlappedPresenter-Eigenschaften :

Ihre Logik zum Ändern der visuellen Zustände sollte jedoch in der Lage sein, einen Zustand zu laden, der für die von Ihnen beabsichtigte Mindestbreite ausgelegt ist. In der Regel verwenden Sie die Bounds-Werte und Window.SizeChanged -Behandlung, um zu erkennen, wann das App-Fenster die Mindestbreite verwendet.

Weitere Informationen zum Erkennenindow.SizeChanged von Änderungen in der App-Fensterumgebung und zum Laden der entsprechenden visuellen Zustände für Ihre App finden Sie unter "Dynamische Layouts mit XAML".

Andere Größenänderungsereignisse

Es gibt mehrere andere Ereignisse, mit denen Sie Größenänderungen erkennen können.

AppWindow

Die AppWindow-Klasse weist ein Changed-Ereignis mit dem DidSizeChange-Wert für die Ereignisargumente auf.

Im Gegensatz zur XAML-Window-Klasse verwendet AppWindow das Window-Koordinatensystem, wobei die Grundlegende Maßeinheit physische Gerätepixel ist. Verwenden Sie also die AppWindow-APIs für Fensteraktionen, z. B. Ändern der Fenstergröße oder Verschieben des Fensters in Bezug auf etwas anderes auf dem Bildschirm.

FrameworkElement

Es gibt ein weiteres Ereignis namens SizeChanged, das in abgeleiteten FrameworkElement-Typen vorhanden ist (Window ist kein FrameworkElement-Typ). FrameworkElement.SizeChanged-Ereignisse können in vielen der gleichen Situationen auftreten, die auftreten Window.SizeChanged . Eine Größenänderung des App-Fensters kann dazu führen, dass das visuelle Stammelement (in der Regel eine Seite oder ein Panel) seine Größe ändert. Dadurch wird eine Kaskade von Layoutinvaligationen für alle Unterelemente festgelegt, die adaptives Layout verwenden, um verfügbaren Platz zu füllen. Jedes Element mit neuen Dimensionen aufgrund eines Layoutdurchlaufs löst ein eigenes FrameworkElement.SizeChanged-Ereignis aus.

Gilt für:

Weitere Informationen