我想在datagrid
长度超过stackpanel
时滚动,所以我尝试了这个:
<StackPanel Orientation="Horizontal">
<ScrollViewer VerticalScrollBarVisibility="Auto" CanContentScroll="True">
<DataGrid Name="dgConfig" VerticalAlignment="Stretch" AutoGenerateColumns="False">
<DataGrid.Columns>
...
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
</StackPanel>
但是这不起作用,我在这个网站上搜索过但未能找到任何可用的解决方案。那我该怎么办呢?谢谢!
答案 0 :(得分:3)
ScrollViewers
和StackPanels
不能很好地协同工作,因为StackPanel
如果Orientation
属性设置为{{1},则会测量具有无限水平空间的子元素如果设置为Horizontal
,则为无限垂直空间。
因此,您必须指定Vertical
的高度:
StackPanel
如果不这样做,它将具有无限高度,这就是您看不到滚动条的原因。
另一个更好的选择是摆脱<StackPanel Orientation="Horizontal" Height="100">
并使用另一个StackPanel
来衡量其无限空间的子元素。
Panel
内置了DataGrid
,因此您无需亲自将其放入ScrollViewer
元素中。摆脱ScrollViewer
(s)和StackPanel
:
ScrollViewer
答案 1 :(得分:1)
DockPanel而不是StackPanel适合我。
答案 2 :(得分:0)
尝试将VerticalScrollBarVisibility =“Auto”,ScrollViewer.CanContentScroll =“True”添加到datagrid属性。