为什么我的ScrollViewer Scrollbars不会出现在屏幕上?

时间:2016-05-12 09:58:28

标签: c# wpf

我有一个WPF C#项目的问题,我的表单上有一个StackPanel,我有一个DockPanel,它以编程方式添加了项目,问题是这些项目超出了表单的界限,我想滚动浏览这些,我已经有了一个“滚动”项目的方法,但对于我的生活,我不明白为什么滚动条没有出现在屏幕上,我错过了什么?

代码如下,任何建议都非常欢迎。

 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">

2 个答案:

答案 0 :(得分:1)

指定ScrollBar Visibility

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

有时,ScrollViewer无法在尺寸变化的确切时刻检测ScrollBars的必要性。它完全是   context具体但始终将visibility设置为Visible是安全的。

答案 1 :(得分:0)

@Reece尝试设置堆栈面板的高度。因为StackPanel不能拥有动态高度。或者你可以使用Grid而不是StackPanel