ScrollViewer を使用して、含まれるグリッドをスクロール可能にします。ただし、下にスクロールして手を離すと、自動的にグリッドの一番上に戻ります。
<ScrollViewer>
<Grid ShowGridLines="false" MinHeight="700">
<Grid.RowDefinitions>
<RowDefinition Height="1" />
<RowDefinition Height="{Binding Pivot1Rows[0].RowHeight}" />
<RowDefinition Height="1" />
<RowDefinition Height="{Binding Pivot1Rows[1].RowHeight}" />
<RowDefinition Height="1" />
<RowDefinition Height="{Binding Pivot1Rows[2].RowHeight}" />
<RowDefinition Height="1" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<!-- Stackpanels for each row/column combo here -->
</Grid>
</ScrollViewer>
下にスクロールしたグリッド内の位置が手放した後も維持されるようにするために、何を追加/変更する必要があるか考えていますか?