Я заполняю свой Аккордеон элементами из своей базы данных. Я также завернул свой Аккордеон в ScrollViewer:
<ScrollViewer Name="LayoutScrollViewer">
<toolkit:Accordion Name="ItemsAccordion" ItemTemplate="{StaticResource AccordionHeaderTemplate}" ContentTemplate="{StaticResource AccordionContentTemplate}"></toolkit:Accordion>
</ScrollViewer>
Однако я не могу найти способ изначально показать VerticalOffset ScrollViewer равным 0. Он продолжает прокручиваться вниз всякий раз, когда содержимое моей базы данных завершает загрузку. Я пробовал в коде:
void CatalogItem_Loaded(object sender, RoutedEventArgs e)
{
WebServiceClient client = new WebServiceClient();
client.GetCatalogItemsAsync(countID);
client.GetCatalogItemsCompleted += new EventHandler<GetCatalogItemsCompletedEventArgs>(client_GetCatalogItemsCompleted);
}
void client_GetCatalogItemsCompleted(object sender, GetCatalogItemsCompletedEventArgs e)
{
ItemsAccordion.ItemsSource = e.Result;
UpdateScrollViewer();
}
private void UpdateScrollViewer()
{
LayoutScrollViewer.ScrollToVerticalOffset(0);
}
Но это не работает. Я также пробовал в UpdateScrollViewer () сделать:
LayoutScrollViewer.IsHitTestVisible = false;
LayoutScrollViewer.IsHitTestVisible = true;
что тоже не работает. Если я оставлю IsHitTestVisible = false, то все будет работать так, как мне хотелось бы; но я также хочу, чтобы пользователь взаимодействовал с Accordion, так что это не постоянное решение.