【发布时间】:2012-02-02 19:01:24
【问题描述】:
我正在用我的数据库中的项目填充我的手风琴。我还将手风琴包装在 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,那么它可以按我的意愿工作;但我也希望用户与 Accordion 进行交互,所以这不是永久的解决方案。
【问题讨论】:
标签: silverlight silverlight-4.0 accordion silverlight-toolkit scrollviewer