所以我正在尝试制作一个可以有水平或垂直滚动条的窗口,关键是网格的第一行应该被冻结并放置并且不能垂直滚动(很像 excel 中的冻结窗格)。水平滚动条应滚动两个窗格。我大部分时间都在工作,这是演示的代码子集。
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Disabled">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Text="AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" />
<ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled" >
<TextBlock Text="test2">
<Run Text=" test2" /><Run Text=" test2" /><Run Text=" test2" /><Run Text=" test2" /><Run Text=" test2" /><Run Text=" test2" />
<Run Text=" test2" /><Run Text=" test2" /><Run Text=" test2" /><Run Text=" test2" /><Run Text=" test2" /><Run Text=" test2" />
<Run Text=" test2" /><Run Text=" test2" /><Run Text=" test2" /><Run Text=" test2" /><Run Text=" test2" /><Run Text=" test2" />
<Run Text=" test2" /><Run Text=" test2" /><Run Text=" test2" /><Run Text=" test2" /><Run Text=" test2" /><Run Text=" test2" />
</TextBlock>
</ScrollViewer>
</Grid>
</ScrollViewer>
所以这几乎可以正常工作,屏幕可以水平滚动并滚动两个窗格,而垂直滚动只会滚动底部窗格(这是我想要的)。但是垂直滚动条不会出现在窗口的一侧,而是您必须一直滚动到右侧才能使用它。有什么方法可以使滚动条捕捉到窗口并垂直滚动而不使其也滚动顶部窗格?