在我的WPF-Application中,我有一个窗口,其中包含许多动态DataGrid,顶部有一个Label作为标题行。这些元素是ScrollViewer的子元素。 如果我向上或向下滚动ScrollViewer总是跳转到Label。从DataGrids的内容中,只有第一列可见。 我的WPF代码:
<ScrollViewer CanContentScroll="True" PanningMode="VerticalFirst" MouseWheel="ResultDataGrid_OnMouseWheel" x:Name="ResultScrollViewer" Height="Auto">
<StackPanel x:Name="ResultStackPanel">
<TextBlock Text="Result" Style="{StaticResource Heading2}" />
<StackPanel Style="{StaticResource ResultStackPanel}">
<Label Content="Informations" x:Name="LabelInfo" Style="{StaticResource BoldLabel}"/>
<DataGrid x:Name="ResultMeta" Style="{StaticResource DataGridStyle}" />
</StackPanel>
<StackPanel Style="{StaticResource ResultStackPanel}">
<Label Content="Statistics" Style="{StaticResource BoldLabel}"/>
<DataGrid x:Name="ResultStat" Style="{StaticResource DataGridStyle}" />
</StackPanel>
<StackPanel Style="{StaticResource ResultStackPanel}">
<Label Content="Resources" Style="{StaticResource BoldLabel}" />
<DataGrid x:Name="ResultResources" Style="{StaticResource DataGridStyle}" />
</StackPanel>
<!-- ... -->
</StackPanel>
</ScrollViewer>
答案 0 :(得分:1)
ScrollViewer
的默认滚动行为是滚动元素。
您可以尝试更改此行为,使用选项CanContentScroll="bool"
将其设置为像素。
您可以从MSDN获取更多信息
但请记住,此选项会强制ScrollViewer
加载所有可用元素,而不是显示的元素(加载时的性能)。