Window.SizeChanged 事件

定義

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

public:
 virtual event WindowSizeChangedEventHandler ^ SizeChanged;
// Register
event_token SizeChanged(WindowSizeChangedEventHandler 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, WindowSizeChangedEventHandler const& handler) const;
public event WindowSizeChangedEventHandler SizeChanged;
function onSizeChanged(eventArgs) { /* Your code */ }
window.addEventListener("sizechanged", onSizeChanged);
window.removeEventListener("sizechanged", onSizeChanged);
- or -
window.onsizechanged = onSizeChanged;
Public Custom Event SizeChanged As WindowSizeChangedEventHandler 

事件類型

備註

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

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

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

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

如需如何使用 Window.SizeChanged 來偵測應用程式視窗環境中的變更,並載入應用程式的適當視覺狀態的詳細資訊,請參閱 快速入門:為不同的視窗大小設計應用程式

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

適用於

另請參閱