如何在堆栈面板中滚动数据网格?
How to scroll the datagrid in stackpanel?
我想在长度超过 stackpanel
时滚动 datagrid
,所以我尝试了这个:
<StackPanel Orientation="Horizontal">
<ScrollViewer VerticalScrollBarVisibility="Auto" CanContentScroll="True">
<DataGrid Name="dgConfig" VerticalAlignment="Stretch" AutoGenerateColumns="False">
<DataGrid.Columns>
...
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
</StackPanel>
但这行不通,我在这个网站上搜索过,但没有找到任何可用的解决方案。那么我应该如何解决这个问题?谢谢!
尝试将 VerticalScrollBarVisibility="Auto"、ScrollViewer.CanContentScroll="True" 添加到数据网格 属性.
ScrollViewers
和 StackPanels
不能很好地协同工作,因为如果 Orientation
StackPanel
测量其具有无限水平 space 的子元素 属性设置为Horizontal
和无限垂直space如果设置为Vertical
.
因此您要么必须为 StackPanel
:
指定高度
<StackPanel Orientation="Horizontal" Height="100">
如果你不这样做,它的高度将是无限的,这就是你看不到滚动条的原因。
另一个更好的选择是摆脱 StackPanel
并使用另一个 Panel
,它不使用无限 space 测量其子元素。
DataGrid
有自己的内置 ScrollViewer
,因此您不需要自己将它放在 ScrollViewer
元素中。去掉 StackPanel
(s) 和 ScrollViewer
:
<DataGrid Name="dgConfig" VerticalAlignment="Stretch" AutoGenerateColumns="False"
VerticalScrollBarVisibility="Auto">
<DataGrid.Columns>
...
</DataGrid.Columns>
</DataGrid>
DockPanel 而不是 StackPanel 适合我。
我想在长度超过 stackpanel
时滚动 datagrid
,所以我尝试了这个:
<StackPanel Orientation="Horizontal">
<ScrollViewer VerticalScrollBarVisibility="Auto" CanContentScroll="True">
<DataGrid Name="dgConfig" VerticalAlignment="Stretch" AutoGenerateColumns="False">
<DataGrid.Columns>
...
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
</StackPanel>
但这行不通,我在这个网站上搜索过,但没有找到任何可用的解决方案。那么我应该如何解决这个问题?谢谢!
尝试将 VerticalScrollBarVisibility="Auto"、ScrollViewer.CanContentScroll="True" 添加到数据网格 属性.
ScrollViewers
和 StackPanels
不能很好地协同工作,因为如果 Orientation
StackPanel
测量其具有无限水平 space 的子元素 属性设置为Horizontal
和无限垂直space如果设置为Vertical
.
因此您要么必须为 StackPanel
:
<StackPanel Orientation="Horizontal" Height="100">
如果你不这样做,它的高度将是无限的,这就是你看不到滚动条的原因。
另一个更好的选择是摆脱 StackPanel
并使用另一个 Panel
,它不使用无限 space 测量其子元素。
DataGrid
有自己的内置 ScrollViewer
,因此您不需要自己将它放在 ScrollViewer
元素中。去掉 StackPanel
(s) 和 ScrollViewer
:
<DataGrid Name="dgConfig" VerticalAlignment="Stretch" AutoGenerateColumns="False"
VerticalScrollBarVisibility="Auto">
<DataGrid.Columns>
...
</DataGrid.Columns>
</DataGrid>
DockPanel 而不是 StackPanel 适合我。