2011-05-20 65 views

回答

40

你可以一個ScrollViewer元素添加到您的窗口,把必要的控制進的ScrollViewer控制。

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

或者,如果你想在代碼代碼隱藏文件,你可以寫

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

+1:這個竅門。 – 2011-05-20 07:50:02

2

您不能將一個滾動條添加到窗口本身。您只能將滾動條添加到控件。 I.E.到窗戶內的網格。

例子:

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

編輯:

剛剛意識到窗口也有一個ScrollViewer中屬性。我不確定此屬性如何適用於窗口,以及這樣的窗口的外觀如何。試一試,但沒有滾動條出現。

編輯2:

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

感謝您的答覆。我沒有使用XAML創建網格,而是使用Programatically usig Grid創建它。我要設置哪些網格屬性來獲得滾動條? – 2011-05-20 07:42:56

+1

我沒有ScrollViewer屬性。你使用的是什麼版本的.NET? – 2011-05-20 07:47:21

+1

@Gunner - 我正在使用.NET 3.5 SP1。 ScrollViewer在System.Windows.Controls.ScrollViewer – Christian 2011-05-20 07:57:02

0

試試這個

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 }; 
      }