Window.SizeChanged Evento
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Se produce cuando el tamaño de representación de la ventana ha cambiado.
// 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 de evento
TypedEventHandler<IInspectable,WindowSizeChangedEventArgs>
Comentarios
Este evento se produce siempre que haya cambios en los valores de límites de la ventana. Esto puede deberse a que el usuario cambia el tamaño de la aplicación o cambia la orientación de visualización mientras la aplicación está maximizada. Otro desencadenador es si el usuario mueve la aplicación a una nueva pantalla que tiene una resolución diferente.
Controla el SizeChanged evento para administrar cosas en la interfaz de usuario de la aplicación, como mover elementos cuando cambia el tamaño de la ventana. XAML usa píxeles efectivos (epx), no píxeles físicos reales. Los píxeles efectivos son una unidad virtual de medida y se usan para expresar dimensiones de diseño y espaciado, independientemente de la densidad de la pantalla. Los valores Bounds Height y Width son los mismos que los valores WindowSizeChangedEventArgs Height y Width, por lo que puede usar cualquiera de los valores en el controlador de eventos.
Para obtener más información, consulta Información general sobre ventanas para WinUI y SDK de Aplicaciones para Windows.
Si adjunta un controlador para SizeChanged en el nivel de página dentro de un controlador para el evento FrameworkElement.Loaded , debe desasociar el controlador en un controlador de eventos FrameworkElement.Unloaded de esa página. La instancia de Window permanece activa entre las navegaciones de página y solo debe tener un controlador activo para el código de página más actual.
Orientación
Es posible que desee detectar que la ventana ha cambiado de horizontal a orientación vertical o viceversa. La orientación de la ventana puede influir en cómo desea que aparezcan los controles individuales dentro de la aplicación. Por ejemplo, es posible que quiera mostrar listas de datos en un control ListView para la orientación vertical, pero en gridView para la orientación horizontal. Normalmente, compararía la relación entre WidthHeight y para determinar la orientación en función de los límites de la ventana y lo haría siempre que Window.SizeChanged se produzca. Exactamente cómo interpretas Width/Height las relaciones es para ti.
Tamaño mínimo y máximo
No use el SizeChanged controlador para aplicar el tamaño mínimo o máximo al que se puede cambiar el tamaño de la aplicación. En su lugar, use estas propiedades SuperpuestasPresenter :
Sin embargo, la lógica para cambiar los estados visuales debe ser capaz de cargar un estado diseñado para el ancho mínimo que pretende, y normalmente usaría los valores bounds y Window.SizeChanged el control para detectar cuándo la ventana de la aplicación usa el ancho mínimo.
Para obtener más información sobre cómo usar Window.SizeChanged para detectar cambios en el entorno de ventana de la aplicación y cargar los estados visuales adecuados para la aplicación, consulta Diseños dinámicos con XAML.
Otros eventos de tamaño cambiado
Hay otros eventos que puede usar para detectar cambios de tamaño.
AppWindow
La clase AppWindow tiene un evento Changed con el valor DidSizeChange para los argumentos del evento.
A diferencia de la clase Ventana XAML, AppWindow usa el sistema de coordenadas de ventana, donde la unidad de medida básica es píxeles de dispositivo físico. Por lo tanto, use las API de AppWindow para las acciones de ventana, como cambiar el tamaño de la ventana o moverla en relación con otra cosa en la pantalla.
FrameworkElement
Hay otro evento denominado SizeChanged que existe en los tipos derivados frameworkElement (Window no es un tipo FrameworkElement ).
Los eventos FrameworkElement.SizeChanged pueden producirse en muchas de las mismas circunstancias que provocan Window.SizeChanged que se produzca. Un cambio de tamaño de ventana de aplicación puede hacer que el elemento visual raíz (normalmente una página o un panel) cambie su tamaño. Esto establece una cascada de invalidaciones de diseño para los sub-elementos que usan el diseño adaptable para rellenar el espacio disponible. Cada elemento que tenga nuevas dimensiones debido a un paso de diseño desencadenará su propio evento FrameworkElement.SizeChanged .