如何滚动StackPanel的数据网格?(How to scroll the datagrid in

2019-09-28 04:19发布

我要滚动的datagrid时,它的长度超过stackpanel ,所以我尝试这样做:

<StackPanel Orientation="Horizontal">                         
   <ScrollViewer VerticalScrollBarVisibility="Auto" CanContentScroll="True">
       <DataGrid Name="dgConfig" VerticalAlignment="Stretch" AutoGenerateColumns="False">
             <DataGrid.Columns>
              ...
             </DataGrid.Columns>
       </DataGrid>
   </ScrollViewer>                                
</StackPanel>

但是,这并不工作,我已经搜索这个网站上,并没有发现任何缴费的解决方案。 所以,我应该怎么解决这个问题? 谢谢!

Answer 1:

ScrollViewersStackPanels不工作很好地结合在一起,因为一个StackPanel如果措施,无限的水平空间的子元素Orientation属性设置为Horizontal ,如果它被设置为无限垂直空间Vertical

所以,你将不得不指定一个高度StackPanel

<StackPanel Orientation="Horizontal" Height="100">

如果你不这样做,将有无限的高度,这就是为什么你看到没有滚动条。

另外,和更好的选择,将是摆脱了StackPanel ,并使用另一个Panel并不措施的无限空间的子元素。

DataGrid都有自己ScrollViewer内置的,所以你不必把它放在里面ScrollViewer元素自己。 摆脱了StackPanel (S)和ScrollViewer

<DataGrid Name="dgConfig" VerticalAlignment="Stretch" AutoGenerateColumns="False"
                          VerticalScrollBarVisibility="Auto">
    <DataGrid.Columns>
        ...
    </DataGrid.Columns>
</DataGrid>


Answer 2:

DockPanel中的StackPanel中,而不是为我工作。



Answer 3:

尝试添加VerticalScrollBarVisibility = “自动”,ScrollViewer.CanContentScroll = “true” 以数据网格属性。



文章来源: How to scroll the datagrid in stackpanel?