我的 wpf 应用程序的结构如下:
<Scrollviewer>
<Grid>
<Scrollviewer>
<DataGrid>
我的目标是,如果 DataGrid 超过屏幕的高度来使用它自己的 Scrollviewer。目前只使用外部的 ScrollViewer,所以我必须滚动整个网格。
有人可以告诉我该怎么做吗?
最佳答案
您需要在内部 ScrollViewer 上设置一个高度,否则它将根据内容的大小尽可能多地拉伸(stretch)。
<Window x:Name="RootWindow">
<ScrollViewer>
<Grid Height="{Binding ElementName=RootWindow, Path=ActualHeight}">
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="2*" />
</Grid.RowDefinitions>
<ScrollViewer Grid.Row="1">
<DataGrid />
</ScrollViewer>
</Grid>
</ScrollViewer>
</Window>
此外,DataGrid 具有它自己的 ScrollBars 的内置属性,您可以使用它来代替将 DataGrid 包装在 ScrollViewer 中。这将滚动数据并始终使标题可见,而不是滚动整个数据网格。
<DataGrid HorizontalScrollBarVisibility="Auto"
VerticalScrollBarVisibility="Auto" />
关于wpf - 在另一个 Scrollviewer 中使用 ScrollViewer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7584067/