Quiero saber la altura de todos los artículos my StackPanel
.Stackpanel: Altura vs ActualHeight vs ExtentHeight vs ViewportHeight vs DesiredSize vs RenderSize
¿Cuál es la diferencia entre:
Height
- Obtiene o establece el alto sugerido del elemento.ActualHeight
- Obtiene la altura renderizada de este elemento. (readonly)ExtentHeight
- Obtiene un valor que contiene el tamaño vertical de la extensión. (readonly)ViewportHeight
- Obtiene un valor que contiene el tamaño vertical de la ventana gráfica del contenido. (readonly)DesiredSize
- Obtiene el tamaño que este elemento calculó durante el paso de medida del proceso de disposición. (readonly)RenderSize
- Obtiene (o establece, pero vea Comentarios) el tamaño de renderizado final de este elemento.
De MSDN:
Height
Obtiene o define la altura del elemento sugerido.Valor de la propiedad:
Double
- La altura del elemento, en unidades independientes del dispositivo (1/96th inch por unidad).La altura del elemento, en unidades independientes del dispositivo (1/96th inch por unidad).
ActualHeight (de sólo lectura)
Obtiene la altura representado de este elemento.Valor de la propiedad:
Double
- La altura del elemento, como un valor en unidades independientes del dispositivo (1/96th de pulgada por unidad).Esta propiedad es un valor calculado en función de otras entradas de altura y del sistema de disposición. El valor es establecido por el propio sistema de disposición, basado en un pase de representación real, y por lo tanto puede retrasarse ligeramente por debajo del valor establecido de propiedades como Height que son la base del cambio de entrada.
Dado que ActualHeight es un valor calculado, debe tener en cuenta que podría haber cambios múltiples o incrementales informados en él como resultado de diversas operaciones realizadas por el sistema de disposición. El sistema de disposición puede calcular el espacio de medida requerido para elementos secundarios, las restricciones del elemento principal, etc.
ExtentHeight (de sólo lectura)
consigue un valor que contiene el tamaño vertical de la medida.Altura de la propiedad:
Double
- A Doble que representa el tamaño vertical de la extensión.El valor devuelto se describe en Píxeles independientes del dispositivo.
ViewportHeight (de sólo lectura)
consigue un valor que contiene el tamaño vertical de la ventana gráfica del contenido.Valor de la propiedad:
Double
- El doble que representa el tamaño vertical de la ventana gráfica del contenido.El valor devuelto se describe en Píxeles independientes del dispositivo.
DesiredSize (de sólo lectura)
obtiene el tamaño que este elemento calcula durante el paso de la medida del proceso de diseño.Valor de la propiedad:
Size
- El tamaño calculado, que se convierte en el tamaño deseado para el pase de organización.El valor devuelto por esta propiedad solo será una medida válida si el valor de la propiedad IsMeasureValid es verdadero.
DesiredSize suele comprobarse como uno de los factores de medición cuando implementa anulaciones de comportamiento de disposición como ArrangeOverride, MeasureOverride o OnRender (en el caso de OnRender, puede verificar RenderSize, pero esto depende de su implementación). Dependiendo de la situación, su lógica de implementación podría respetar DesiredSize, se podrían aplicar restricciones en DesiredSize, y dichas restricciones también podrían cambiar otras características del elemento padre o elemento hijo. Por ejemplo, un control que admite regiones desplazables (pero elige no derivar de los controles de nivel de marco de WPF que ya habilitan las regiones desplazables) podría comparar el tamaño disponible con el Tamaño deseado. El control podría establecer un estado interno que habilite las barras de desplazamiento en la interfaz de usuario para ese control. O, DesiredSize también podría ser ignorado en ciertos escenarios.
RenderSize Obtiene el tamaño de render final de este elemento.
Valor de la propiedad:
Size
- El tamaño representado para este elemento.Esta propiedad se puede utilizar para verificar el tamaño de renderizado aplicable dentro de las anulaciones del sistema de disposición como OnRender o GetLayoutClip.
Un escenario más común es manejar el evento SizeChanged con la anulación del controlador de clase o el evento OnRenderSizeChanged.
En mi caso quiero conocer la deseada altura de todos los elementos de la StackPanel
.
En otras palabras: Quiero saber la altura de todos los elementos de la StackPanel (antes de dibujo), y si eran para desbordar el panel, voy a
- eliminar
- encogimiento escala
- ajustar
artículos para asegurarse de que encajan en el StackPanel.
lo que significa que es probable que quieran obtener la deseada altura (ExtentHeight DesiredSize??) Durante un evento de cambiar el tamaño de (SizeChangedLayoutUpdated??) - antes de que ocurra cualquier dibujo (por lo que es más rápido).
La mayoría de estas propiedades devuelven cero; así que obviamente hay una cierta comprensión de lo que significan estas propiedades que no sé y no se explican en la documentación.