2016-05-12 76 views
1

我有一個WPF C#項目的問題,我的窗體上有一個StackPanel,在那裏我有一個DockPanel,其中的項目以編程方式添加到項目中,問題是這些項目將從窗體邊界出來,而我想要滾動瀏覽這些內容,我已經有了一種「滾動」這些項目的方法,但是對於我來說,我不明白爲什麼滾動條沒有出現在屏幕上,我錯過了什麼?爲什麼我的ScrollViewer滾動條不會出現在屏幕上?

代碼在下面,任何建議都非常值得歡迎。

private void ScrollifyStackpanel(StackPanel Panel) 
     { 
      ScrollViewer SV = new ScrollViewer(); 
      SV.Height = Panel.ActualHeight; 
      SV.Width = Panel.ActualWidth; 


      SV.CanContentScroll = true; 
      SV.Content = Panel; 

     } 

的Xaml

這是包含(應該是)可滾動內容

<StackPanel Name="divParentPanel" VerticalAlignment="Top" DockPanel.Dock="Left" Margin="10" Width="Auto" HorizontalAlignment="Stretch" CanVerticallyScroll="True"> 

回答

1

的StackPanel中指定ScrollBarVisibility

 ScrollViewer SV = new ScrollViewer(); 
     SV.HorizontalScrollBarVisibility = ScrollBarVisibility.Visible; 
     SV.VerticalScrollBarVisibility = ScrollBarVisibility.Visible; 

有時可能發生ScrollViewer無法檢測大小改變的確切時刻ScrollBars的必要性。這完全是 context具體,但設置visibilityVisible總是安全。

+0

不幸的是,這是沒有做任何事情 –

+0

@ReeceCottam嘗試修復ScrollViewer的高度和寬度。只是將其設置爲任何尺寸小於面板的尺寸 –

+0

不,我還是沒有什麼恐怕=/ –

0

@Reece試着設置堆疊面板的高度。因爲StackPanel不能有動態高度。否則,你可以使用網格,而不是StackPanel

+0

只有網格可能不能幫助stackpanle –

+0

是的。因爲堆棧面板不能有動態高度。如果你正在根據你的內容設置stackpanel的高度。然後你可以看到scrollviewer。因此,最好使用Grid和Row和ColumnDefinitions – Smirti

+0

,無論堆棧面板的高度是多少,它都可以包含infinnite大小的內容,但溢出將不可見。 –