在另一个Scrollviewer中使用ScrollViewer

The*_*aut 4 wpf grid scrollviewer

我的wpf应用程序的结构如下:

<Scrollviewer>
   <Grid>
       <Scrollviewer>
            <DataGrid>
Run Code Online (Sandbox Code Playgroud)

我的目标是,如果DataGrid超过屏幕的高度,则使用它自己的Scrollviewer.在Moment只使用外部ScrollViewer,所以我必须滚动整个网格.

有人可以告诉我该怎么做?

Rac*_*hel 10

您需要在内部ScrollViewer上设置一个高度,否则它将根据内容的大小拉伸所需的数量.

<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>
Run Code Online (Sandbox Code Playgroud)

此外,DataGrid具有自己的ScrollBars的内置属性,您可以使用它而不是在ScrollViewer中包装DataGrid.这将滚动数据并始终保持标题可见,而不是滚动整个数据网格.

<DataGrid HorizontalScrollBarVisibility="Auto" 
          VerticalScrollBarVisibility="Auto" />
Run Code Online (Sandbox Code Playgroud)