В нескольких наших приложениях нам обычно требуется отображать много данных вместе на экране, но помещать этот контент в расширители, чтобы пользователь мог определить, что он хочет видеть или не хочет видеть в это время.
Я заметил, что когда я пытаюсь использовать подобный код ниже, прокрутка либо скачет, либо просто медленнее, чем должна быть, на приличной машине.
<ScrollViewer x:Name="sbar" Grid.Row="1" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" VerticalAlignment="Top">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Expander x:Name="ex1" Style="{DynamicResource GroupBoxExpander}" Width="900" HorizontalAlignment="Left" Margin="5" Grid.Row="0" Grid.Column="0" IsExpanded="True">
<StackPanel></StackPanel>
</Expander>
<!-- in my current application, 9 more in between -->
<Expander x:Name="ex11" Style="{DynamicResource GroupBoxExpander}" Width="900" HorizontalAlignment="Left" Margin="5" Grid.Row="0" Grid.Column="0" IsExpanded="True">
<StackPanel></StackPanel>
</Expander>
</Grid>
</ScrollViewer>
В этом примере мне на самом деле больше не нужно использовать сетку, но одному из наших других приложений все еще понадобится сетка. Также есть контент во всех расширителях, начиная от текстовых полей до списков и других элементов управления, но не для многих, а некоторые сильно варьируются.
Что мы можем сделать, чтобы немного ускорить это? За кулисами на самом деле не так много привязок к данным, и мы не