WPF - 滚动查看器内容溢出

  • 本文关键字:溢出 滚动 WPF .net wpf
  • 更新时间 :
  • 英文 :


我有一个具有以下基本结构的 WPF 控件:

<Grid>
    <ScrollViewer x:Name="_Scroll" Grid.Row="4" Grid.RowSpan="20" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" CanContentScroll="True" >
        <StackPanel x:Name="_Panel" />
    </ScrollViewer>
</Grid>

某些Grid项稍后会在执行期间添加到_Panel,从而生成垂直对齐的项列表。当滚动条不可见时,这一切都可以正常工作,但是当我实际需要滚动内容时,StackPanel 溢出,我最终在 ScrollViewer 上方看到 StackPanel 的部分内容。知道可能导致此问题的原因吗?如果您需要更多详细信息,请告诉我,我会适当地编辑问题。

编辑:添加了一个更好地解释问题的图像:上面是开始滚动之前控件的外观,下面是项目溢出滚动查看器的问题。至于代码,在面板中插入项目没有什么特别的,它基本上在以下行中:

Dim nRow As New Grid
' Insertion of subcontrols within nRow
_Panel.Children.Add(nRow)

这是因为稍后在堆栈面板中添加的项目数量不会更新滚动条的高度,滚动条位于其外部,仅指堆栈面板的原始大小你可以解决为福洛宁:

[编辑] 为堆栈面板指定要显示的滚动的相对或绝对大小。

像这样:

<Grid Name="GridContent" Height="XXX" >
    <StackPanel Height="{Binding ActualHeight, ElementName=GridContent}"
                Orientation="Vertical" 
                ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
                ScrollViewer.VerticalScrollBarVisibility="Auto" 
                ScrollViewer.CanContentScroll="True">
    </StackPanel>
</Grid>

最新更新