wpf - 在另一个 Scrollviewer 中使用 ScrollViewer

标签 wpf grid scrollviewer

我的 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/

相关文章:

wpf - 如何让旋转变换和布局变换一起工作

c++ - 创建网格数组

javascript - Angular UI-Grid 重用网格不重置滚动 + 无限滚动不起作用

javascript - ExtJs - Javascript - 网格中的组合框(单元格编辑插件) - 网格/窗口后面的下拉列表

c# - WPF 访问 ListView 代码隐藏的滚动查看器

silverlight - 更改垂直滚动条的宽度

WPF 数据网格 : Lazy Loading/Inifinite scroll

c# - ResourceSet 不加载子文件夹的子文件夹中的项目

c# - DataGrid 滚动查看器不工作

c# - 如何使用 C# 构建 PathGeometry?