2011-05-20 33 views

Respuesta

40

Se podría añadir un elemento ScrollViewer a la ventana y poner los controles necesarios en el control deScrollViewer.

<ScrollViewer VerticalScrollBarVisibility="Auto"> 
    ... 
</ScrollViewer> 

O si lo desea codificar en el archivo de código subyacente se podría escribir

ScrollViewer viewer = new ScrollViewer(); 
viewer.VerticalScrollBarVisibility = ScrollBarVisibility.Auto; 
// append scroll viewer to window 
+0

+1: Esto funcionó. –

2

No puede agregar una barra de desplazamiento a una ventana. Solo puede agregar barras de desplazamiento a los controles. ES DECIR. a una cuadrícula dentro de su ventana.

Ejemplo:

<Grid ScrollViewer.CanContentScroll="True" 
     ScrollViewer.HorizontalScrollBarVisibility="Auto"> 
    ... 
</Grid> 

EDIT:

di cuenta de que la ventana también tiene una propiedad ScrollViewer. No estoy seguro de cómo funciona esta propiedad para una ventana y cómo sería una ventana. Lo intenté, pero no aparecen las barras de desplazamiento.

EDIT 2:

ScrollViewer sv = new ScrollViewer(); 
sv.VerticalScrollBarVisibility = ScrollBarVisibility.Visible; 
myGrid.Children.Add(sv); 
+0

Gracias por la respuesta. En lugar de crear la cuadrícula usando XAML, la he creado utilizando Programatically usig Grid. ¿Qué propiedades de Grid configuro para obtener una barra de desplazamiento? –

+1

No tengo una propiedad ScrollViewer. ¿Qué versión de .NET estás usando? –

+1

@Gunner - Estoy usando .NET 3.5 SP1. El ScrollViewer está en System.Windows.Controls.ScrollViewer – Christian

0

probar este

var xpage = your user control or page to which scroll bar need to be added at runtime 

      xpage.SetValue(ScrollViewer.CanContentScrollProperty, true); 
      xpage.SetValue(ScrollViewer.HorizontalScrollBarVisibilityProperty, ScrollBarVisibility.Auto); 
      xpage.SetValue(ScrollViewer.VerticalScrollBarVisibilityProperty, ScrollBarVisibility.Auto); 

      var scrollViewer = xpage.Content as ScrollViewer; 
      if (scrollViewer != null) 
      { 
       var content = scrollViewer.Content; 
       scrollViewer.Content = null; 
       xpage.Content = content; 
      } 
      else 
      { 
       var content = xpage.Content; 
       xpage.Content = null; 
       xpage.Content = new ScrollViewer { Content = content }; 
      } 
Cuestiones relacionadas