我目前正在开发一个包含条目列表的小应用程序。到目前为止没有什么特别的。我使用ListView
显示条目并添加入口过渡。以下清单显示了到目前为止的xaml(按预期工作):
<ListView ItemsSource="{Binding Menu}">
<ListView.ItemContainerTransitions>
<TransitionCollection>
<EntranceThemeTransition FromVerticalOffset="100"/>
</TransitionCollection>
</ListView.ItemContainerTransitions>
</ListView>
到目前为止很容易,但是当我尝试替换默认的
ItemsPanelTemplate
时,过渡不再起作用。我尝试了以下变体,但没有成功:<!--option 1-->
<ListView ItemsSource="{Binding Menu}">
<ListView.ItemContainerTransitions>
<TransitionCollection>
<EntranceThemeTransition FromVerticalOffset="100"/>
</TransitionCollection>
</ListView.ItemContainerTransitions>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
<!--option 2-->
<ListView ItemsSource="{Binding Menu}">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel>
<VirtualizingStackPanel.ChildrenTransitions>
<TransitionCollection>
<EntranceThemeTransition FromVerticalOffset="100"/>
</TransitionCollection>
</VirtualizingStackPanel.ChildrenTransitions>
</VirtualizingStackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
<!--option 3-->
<ListView ItemsSource="{Binding Menu}">
<ListView.ItemContainerTransitions>
<TransitionCollection>
<EntranceThemeTransition FromVerticalOffset="100"/>
</TransitionCollection>
</ListView.ItemContainerTransitions>
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel>
<VirtualizingStackPanel.ChildrenTransitions>
<TransitionCollection>
<EntranceThemeTransition FromVerticalOffset="100"/>
</TransitionCollection>
</VirtualizingStackPanel.ChildrenTransitions>
</VirtualizingStackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
</ListView>
这些选项均无法按预期工作。根本就没有过渡,条目仅显示在适当的位置。我真的不明白为什么这行不通。有任何想法吗?
提前致谢
克里斯多夫
最佳答案
这是EntranceThemeTransition&ItemsSource的错误。绑定将一起应用或在动画之后应用。由于EntranceThemeTransition仅发生一次,因此认为它已经执行并禁用它。
一种解决方法是在后面的代码中添加项目。参见下面的代码:
How to make EntranceThemeTransition works on a Custom Panel & ItemsSource?
希望能帮助到你。
该错误需要报告给内部团队。如果您知道该怎么做,请执行此操作。