我正在使用数据库中的项目填充手风琴。我还在ScrollViewer中包装了我的手风琴:
<ScrollViewer Name="LayoutScrollViewer">
<toolkit:Accordion Name="ItemsAccordion" ItemTemplate="{StaticResource AccordionHeaderTemplate}" ContentTemplate="{StaticResource AccordionContentTemplate}"></toolkit:Accordion>
</ScrollViewer>
但是,我找不到最初将ScrollViewer的VerticalOffset显示为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,那么它就像我想要的那样工作;但我也希望用户与手风琴互动,所以这不是一个永久的解决方案。
答案 0 :(得分:0)
我讨厌这样做但是你的以下内容:
void client_GetCatalogItemsCompleted(object sender, GetCatalogItemsCompletedEventArgs e)
{
ItemsAccordion.ItemsSource = e.Result;
UpdateLayout();
UpdateScrollViewer();
}