Xaml 单击时设置listview展开的动画

Xaml 单击时设置listview展开的动画,xaml,listview,animation,windows-phone,windows-10-mobile,Xaml,Listview,Animation,Windows Phone,Windows 10 Mobile,对于windows phone 10应用程序,我希望在用户单击按钮时显示项目列表。我不想将用户移动到新页面,只需在按钮下方展开以显示列表。我也不想完全展开,只想在列表中显示预设数量的项目,然后用户可以滚动查看其他项目。我一直在尝试这个按钮,列表视图和一个简单的故事板的高度。我遇到的问题是,我不知道如何确定列表视图的展开高度。如何确定显示一组项目的高度,而不必硬编码高度?有没有更好的方法来做我想做的事情?这是一个常见的问题;XAML不喜欢将静态值动画化为自动值(例如,静态“0”(折叠)到自动“12

对于windows phone 10应用程序,我希望在用户单击按钮时显示项目列表。我不想将用户移动到新页面,只需在按钮下方展开以显示列表。我也不想完全展开,只想在列表中显示预设数量的项目,然后用户可以滚动查看其他项目。我一直在尝试这个按钮,列表视图和一个简单的故事板的高度。我遇到的问题是,我不知道如何确定列表视图的展开高度。如何确定显示一组项目的高度,而不必硬编码高度?有没有更好的方法来做我想做的事情?

这是一个常见的问题;XAML不喜欢将静态值动画化为自动值(例如,静态“0”(折叠)到自动“123”(展开)

有两种主要的方法可以解决这个问题

One: 根本不以高度为目标,而是以RenderTransform的比例特性为目标。比例始终为1(100%),因此您可以说比例应为0(0%),这可以快速轻松地工作,但会导致项目在扩展/收缩时呈现“挤压”外观。 有关详细信息,请参阅

2:更精细、更困难,但基本上必须将要展开/折叠的容器的高度/宽度绑定到其内部内容的高度/宽度,然后使用转换器截取该绑定值,当
IsExpanded
变为
False
时,该转换器基本上会将该值乘以0

归结起来,您必须欺骗高度/宽度值,使其认为它是静态的,同时传递它应该显示的真实自动高度