Window.SizeChanged 事件

定義

發生于應用程式視窗第一次轉譯或變更其轉譯大小時。

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

事件類型

備註

每當應用程式視窗的 [界限 ] 值變更時,就會發生此事件。 這可能是因為使用者調整您的應用程式大小或變更顯示方向。 另一個觸發程式是,如果使用者將您的應用程式移至具有不同解析度的新顯示器,且應用程式視窗會展開以填滿它。

Window.SizeChanged 是要處理的事件,用來偵測使用者已刻意調整您的應用程式大小,或在偵測方向的電腦上旋轉顯示器。 您可能會想要偵測到應用程式視窗已從橫向變更為直向,反之亦然。 應用程式視窗方向可能會影響您希望應用程式視窗內的個別控制項顯示的方式。 例如,您可能想要在 ListView 中顯示直向的資料清單,但在 GridView 中則以橫向顯示。 一般而言,您會比較 與 的比例 Window.Current.Bounds.WidthWindow.Current.Bounds.Height ,以根據 界限來判斷方向,並在每次 Window.SizeChanged 引發時執行此動作。 您解譯寬度/高度比例的方式完全由您決定。

如果您要將 的處理常式附加至FrameworkElement.Loaded事件的處理常式 Window.SizeChanged 內的Page層級,您應該從該Page中斷連結FrameworkElement.Unloaded事件處理常式中的這些處理常式。 Window.Current實例會在頁面流覽之間保持作用中,而且應該只有目前頁面程式碼的處理常式作用中。

Window.SizeChanged處理常式不是您強制執行應用程式可調整大小下限的方式。 這是由應用程式資訊清單所控制。 不過,變更視覺狀態的邏輯應該能夠載入針對所要寬度下限所設計的狀態,而且您通常會使用 界限 值和 Window.SizeChanged 處理來偵測應用程式視窗何時使用最小寬度。

如需如何使用 Window.SizeChanged 來偵測應用程式視窗環境中的變更,並載入應用程式的適當視覺狀態的詳細資訊,請參閱 使用 XAML 回應式配置

有另一個名為 SizeChanged 的事件存在於 FrameworkElement 衍生類型上, (Window 不是 FrameworkElement 類型) 。 FrameworkElement.SizeChanged 事件可能會在許多導致 Window.SizeChanged 引發的相同情況下引發。 應用程式視窗大小變更可能會導致根視覺效果元素 (通常是 頁面 或面板) 變更其大小。 這會針對任何使用調適型配置來填滿可用空間的子項目,設定配置失效的串聯。 因為版面設定階段而具有新維度的每個元素都會引發自己的 FrameworkElement.SizeChanged 事件。

適用於

另請參閱