2011-06-14 14 views
12

Tengo una cuadrícula en mi ventana de WPF. Cuando se presiona un botón en particular, quiero que un control en una de las celdas de la Grilla se expanda hacia abajo para duplicar su tamaño original. Cuando esto sucede, el control se recorta a los límites visuales de la celda contenedora. Sin embargo, necesito que todo el contenido esté visible, en la parte superior de la celda a continuación. Traté de establecer Panel.ZIndex a un valor alto, en vano. Básicamente necesito emular la funcionalidad de "overflow: visible" en CSS. ¿Es esto posible en WPF/Xaml?¿Permitir que el contenido de la celda WPF Grid se expanda fuera de la celda de la cuadrícula?

+0

¿Has probado ClipToBounds = false? – Tormod

Respuesta

1

Probablemente pueda hacer esto con una ventana emergente: http://msdn.microsoft.com/en-us/library/system.windows.controls.primitives.popup.aspx, especialmente si desea que el desbordamiento ignore los límites de la ventana (por ejemplo, las soluciones que incluyen adornos, por ejemplo). Debería poner el control en la ventana emergente y luego expandir la altura de la ventana emergente para obtener el efecto de desbordamiento. Es posible que deba colocar otro panel o algo detrás de la ventana emergente para asegurarse de que el tamaño no expandido permanezca correcto.

7

Establezca la propiedad ClipToBounds del control dentro de la celda en False y luego ajuste el contenido de la celda en un lienzo. El lienzo es un salto garantizado fuera de límites, no todos los controles lo hacen (como los botones).

Ejemplo:

<Canvas Grid.Row="5" Grid.Column="3"> 
    <TextBlock Text="Long text here" ClipToBounds="False"> 
</Canvas> 
+0

Solo un comentario para Silverlight: No hay ninguna propiedad de 'ClipToBounds' en las clases de control como en WPF (https://msdn.microsoft.com/en-us/library/system.windows.uielement.cliptobounds(v=vs. 110) .aspx). En Silverlight es suficiente para envolver el control dentro de un lienzo. – Martin

2
  • uso RowSpan o ColumnSpan
  • cuando se define el lugar de rejilla de la celda en la parte inferior. Dado que el renderizado del motor se realiza de arriba a abajo y desea que esta celda esté encima de sus otras celdas. Es posible que pueda salirse con Zindex, pero trato de minimizar el mantenimiento de Zindex.
+0

Esta sería la respuesta, porque 'ClipToBounds =" True "' no conserva el espacio requerido para mostrar el componente cuando el ancho de la fila de la grilla no es fijo. – n0ne

Cuestiones relacionadas