2011-03-22 22 views
7

¿Cómo podría hacer que el contenido que se coloca dentro de WPF Viewbox con Stretch="UniformToFill"ser desplazable?contenido desplazable en el interior de WPF Viewbox con "UniformToFill"

Por ejemplo:

<Grid Height="500" Width="1000" > 
    <ScrollViewer VerticalScrollBarVisibility="Visible" HorizontalScrollBarVisibility="Visible" > 
     <Viewbox Stretch="UniformToFill"> 
     ...... 

     </Viewbox> 
    </ScrollViewer> 
</Grid> 

El contenido se cambia el tamaño para llenar las dimensiones de destino mientras se conserva su relación de aspecto original. Si la relación de aspecto del destino difiere de la fuente, el contenido de origen se recorta para encajar en las dimensiones de destino.
Así que traté de usar ScrollViewer para poder desplazarme a las áreas del contenido fuente que fueron recortadas, pero las barras de desplazamiento están visibles pero deshabilitadas.

Intenté ClipToBounds="False" pero no sirvió de nada.

+0

es bastante inusual poner una viewbox en un scrollviewer. uno cambia el tamaño del contenido para que quepa en una cierta cantidad de espacio, el otro permite al usuario desplazarse para ver contenido que es demasiado grande para el espacio. tal vez deberías dar un paso atrás y describir lo que estás tratando de lograr? –

+1

@Robert Levy El contenido de viewbox consiste en una cantidad impredecible de otros controles. Viewbox es necesario para escalar el contenido hacia arriba y hacia abajo y ScrollViewer para alcanzar ese contenido cuando se amplía. – rem

Respuesta

15

El ViewBox cambia el tamaño de su contenido en función de las dimensiones que ocupa. ScrollViewer le da a su contenido infinito ancho/alto para renderizar. Entonces, cuando pones un ViewBox dentro de un ScrollViewer, el ViewBox cree que tiene "todo el espacio del mundo" para estirar.

Además, ViewBox utiliza transformaciones de renderizado para estirar el contenido, lo que significa que su ScrollViewer nunca conocerá el tamaño final del contenido.

Para hacer que su ScrollViewer funcione, debe poner un ancho/alto en el ViewBox. Necesita saber cuánto espacio está ocupando.

+1

¡Gracias, respuesta útil! +1 – rem

Cuestiones relacionadas