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 

事件类型

注解

每当应用窗口的 “边界 ”值发生更改时,将发生此事件。 这可能是因为用户调整应用的大小或更改了显示方向。 另一个触发器是,用户将你的应用移动到分辨率不同的新显示器,并且应用窗口展开以填充它。

Window.SizeChanged 是要处理的事件,用于检测用户是否故意调整了应用的大小或在检测方向的电脑上旋转了显示器。 你可能想要检测应用窗口已从横向更改为纵向,反之亦然。 应用窗口方向可能会影响你希望应用窗口中各个控件的显示方式。 例如,你可能希望在 ListView 中纵向显示数据列表,但在 GridView 中显示横向数据列表。 通常,你会比较 与 的Window.Current.Bounds.WidthWindow.Current.Bounds.Height比率,以便根据边界确定方向,只要 Window.SizeChanged 触发,就会执行此操作。 解释宽度/高度比率的确切方式由你决定。

如果要在 FrameworkElement.Loaded 事件的处理程序内的 Page 级别附加 Window.SizeChanged 的处理程序,则应从该页面分离 FrameworkElement.Unloaded 事件处理程序中的这些处理程序。 Window.Current 实例在页面导航之间保持活动状态,并且只应对最当前页面代码使用一个处于活动状态的处理程序。

Window.SizeChanged 处理程序不是强制应用可以调整大小的最小大小的方式。 这由应用清单控制。 但是,用于更改视觉状态的逻辑应该能够加载针对预期最小宽度设计的状态,并且通常使用 边界 值和 Window.SizeChanged 处理来检测应用窗口何时使用最小宽度。

有关如何使用 Window.SizeChanged 检测应用窗口环境中的更改并为应用加载适当的视觉状态的详细信息,请参阅 快速入门:为不同窗口大小设计应用

FrameworkElement 派生类型上存在另一个名为 SizeChanged 的事件, (Window 不是 FrameworkElement 类型) 。 FrameworkElement.SizeChanged 事件可能会在许多导致 Window.SizeChanged 触发的相同情况下触发。 应用窗口大小更改可能会导致根视觉元素 (通常为 Page 或面板) 更改其大小。 这会为使用自适应布局来填充可用空间的任何子元素设置一系列布局失效。 由于布局传递而具有新维度的每个元素将触发其自己的 FrameworkElement.SizeChanged 事件。

适用于

另请参阅