如何滚动stackpanel中的数据网格?
我要滚动的datagrid
时,它的长度超过stackpanel
,所以我想这:如何滚动stackpanel中的数据网格?
<StackPanel Orientation="Horizontal">
<ScrollViewer VerticalScrollBarVisibility="Auto" CanContentScroll="True">
<DataGrid Name="dgConfig" VerticalAlignment="Stretch" AutoGenerateColumns="False">
<DataGrid.Columns>
...
</DataGrid.Columns>
</DataGrid>
</ScrollViewer>
</StackPanel>
但是,这并不工作,我已经搜索这个网站上,并没有发现任何缴费的解决方案。那么我应该如何解决这个问题?谢谢!
ScrollViewers
和StackPanels
不工作很好地结合在一起,因为如果要是将它设置为Vertical
其Orientation
属性设置为Horizontal
和无限的垂直空间StackPanel
措施,无限的水平空间的子元素。
所以,你将不得不指定一个高度为StackPanel
:
<StackPanel Orientation="Horizontal" Height="100">
如果不将有无限的高度,这就是为什么你看到没有滚动条。
另一个,更好的选择是摆脱StackPanel
,并使用另一个Panel
不测量其无限空间的子元素。
DataGrid
有自己的ScrollViewer
内置,所以你不需要自己把它放在ScrollViewer
元素内。摆脱StackPanel
(S)和ScrollViewer
的:替代的StackPanel的
<DataGrid Name="dgConfig" VerticalAlignment="Stretch" AutoGenerateColumns="False"
VerticalScrollBarVisibility="Auto">
<DataGrid.Columns>
...
</DataGrid.Columns>
</DataGrid>
这是一个非常有用的规范。谢谢 – BarryLib
尝试向datagrid属性添加VerticalScrollBarVisibility =“Auto”,ScrollViewer.CanContentScroll =“True”。
DockPanel中对我的作品。
使用其他面板,如网格或dockpanel? –
[如何将ScrollBar添加到Stackpanel](https://*.com/questions/6250240/how-to-add-a-scrollbar-to-a-stackpanel) –
你的代码示例的行为如何?是否增加了StackPanel高度而不是显示滚动条? – opewix