任何想法我会遵循什么方法让数据绑定列表框的项目“飞”到他们在列表框中的位置,就像你在那些Windows Card游戏中处理一副牌时所看到的效果一样? (我正在使用WPF)
答案 0 :(得分:3)
您需要扩展Panel
类,并将其用作ItemsPanelTemplate
属性的ListBox.ItemsPanel
。它真的很容易......只有两种方法可以覆盖;一个用于衡量ListBox
中的项目,另一个用于排列它们。这是关于这个主题的微软article。
这可能是more useful article [不幸的是,不再可用],它显示了如何为项目设置动画。为了您的效果,您只需将位置动画的起始值设置为您的每个项目的可视区域之外的相同位置。例如,使用0, finalSize.Height
的from位置意味着每个项目都会从ListBox
的左下角滑动到其位置。
您可以按照以下方式使用新的动画Panel
:
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<YourXmlNamespace:YourAnimatedPanel AnyCustomProperty="value" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>