2010-02-25 14 views
6

Esta debería ser una tarea muy simple, pero por alguna razón estoy teniendo muchos problemas con ella en WPF.WPF barra de desplazamiento para una ventana de tamaño variable

Esto es lo que quiero que suceda: Tengo un montón de controles en una ventana, incluidos los controles de expansión. Quiero tener barras de desplazamiento para esa ventana, cuando el contenido se expande debajo del área visible. Además, la ventana no es de ancho fijo, se puede maximizar, cambiar de tamaño, etc.

He intentado poner un ScrollViewer como el primer elemento de la ventana, pero no está funcionando correctamente. Si configuro el alto y el ancho en Automático, no se desplaza y si lo configuro en detenciones especiales, crea un cuadro cuando la ventana está maximizada.

¡Cualquier ayuda sería muy apreciada!

+1

¿Podría explicar qué significa "crea una caja"? No lo entendí del todo. – Vlad

+0

Lo que significa que hay un área de ancho fijo en el medio cuando la ventana a su alrededor se expande –

+0

En este caso, ¿podría publicar su XAML? Es interesante la ventana en sí y su elemento secundario inmediato (ScrollViewer?). – Vlad

Respuesta

10

Supongo que tiene algunos problemas de ancho fijo. Si proporciona una muestra de su XAML, puedo ver si puedo ayudarlo. Las siguientes obras sin mostrar un cuadro:

<Window x:Class="WpfSample1.Window1" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="Window1" Height="300" Width="300"> 
    <ScrollViewer> 
     <StackPanel> 
      <Rectangle Height="400" Width="400" Fill="Red" Margin="10" /> 
      <Rectangle Height="400" Width="400" Fill="Green" Margin="10" /> 
      <Rectangle Height="400" Width="400" Fill="Blue" Margin="10" /> 
      <Rectangle Height="400" Width="400" Fill="Yellow" Margin="10" /> 
     </StackPanel> 
    </ScrollViewer> 
</Window> 
+0

Resulta que era problemas de ancho fijo con los cotnrols, gracias! –

8

debe establecer el HorizontalScrollBarVisibility y la VerticalScrollBarVisibility del ScrollViewer en Auto.

Aquí se muestra un ejemplo:

<Grid> 
    <ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto"> 
     <Canvas Width="400" Height="400"> 
      <Button Canvas.Left="300">Left 300</Button> 
      <Button Canvas.Top="300">Top 300</Button> 
     </Canvas> 
    </ScrollViewer> 
</Grid> 

Esto reemplaza el contenido de la ventana principal generada por VS.

Ejecútelo y cambie el tamaño de la ventana, maximícela y podrá desplazar las barras que aparecen y desaparecen.

Cuestiones relacionadas