WPF网格/包装面板自动大小动画

3
我在WPF中有以下布局。
<grid>
<row height=auto>
<border>
<listbox>
<border?
</row>
<row height=*>
<othercontent>
</row>
</grid>

使用MVVM并将列表框项目源绑定。我在网格中使用WrapPanel,并禁用滚动,因此网格行高将根据列表框内容而增长和缩小。这一切都运作良好。
我想要的是能够动画显示列表框(或包含它的边框或自适应高度的网格行)的增长和缩小。我应该使用哪个元素——在边框的SizeChanged触发器上?
另外,当我的ItemsSource更改时,我希望我的列表框项目淡出,然后调整大小,然后新项目淡入。
非常感谢任何帮助。 谢谢, 克里斯

https://dev59.com/4FXTa4cB1Zd3GeqPxgBS - user1834059
直接路由事件不遵循任何路径,它们只在引发它们的同一元素内进行处理。直接路由事件支持其他路由事件行为:它们支持可访问的处理程序集合,并且可以在样式中用作事件触发器。 - user1834059
1个回答

0

我认为你需要创建自己的WrapPanel。也许已经有第三方控件可以满足你的要求。

不确定如何完成这个任务。但可以创建一个自定义WrapPanel,在尺寸改变时,检查行上是否有空间可以放置项目。如果有,则执行storyboard来动画显示该项的位置。

还可以查看可视状态管理器。如果使用流体布局,可以动画显示一些不会自动动画的内容。例如将UI元素从网格列移动到另一个网格列中。

不确定这是否有所帮助。


刚刚找到了这个链接,或许可以帮到你。http://blogs.msdn.com/b/dancre/archive/2006/02/23/537966.aspx - Michael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接