我正在我的UWP应用程序中设计一个ComboBox,我正在尝试为控件中缺少的下拉动画找到解决方案。
看起来周年纪念更新删除了打开/关闭动画,我的意思是,由于某些原因,它们仍然在设置应用中播放,但我不再在我自己的应用,计算器或任何其他应用中看到它们为Windows 10 14393编译的UWP应用程序。
这是我在ComboBox模板中看到的:
<VisualStateGroup x:Name="DropDownStates">
<VisualState x:Name="Opened">
<Storyboard>
<SplitOpenThemeAnimation OpenedTargetName="PopupBorder"
ClosedTargetName="ContentPresenter"
OffsetFromCenter="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.DropDownOffset}"
OpenedLength="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.DropDownOpenedHeight}"/>
</Storyboard>
</VisualState>
<VisualState x:Name="Closed">
<Storyboard>
<SplitCloseThemeAnimation OpenedTargetName="PopupBorder"
ClosedTargetName="ContentPresenter"
OffsetFromCenter="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.DropDownOffset}"
OpenedLength="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.DropDownOpenedHeight}"/>
</Storyboard>
</VisualState>
</VisualStateGroup>
那些SplitOpenThemeAnimation
动画不是真正的动画,因为它们的行为就像一个制定者,它们的效果立竿见影,根本没有动画效果。
我想知道是否有一种简单的方法来恢复之前的动画(也许我只是缺少一个简单的选项/参数来添加到XAML中?)而不必手动弄乱模板并编写我自己的剪辑/转换动画,这是我不想在这里做的事情,因为MS应该在未来的版本中再次更改模板,我已经做了所有的事情。
这里有什么建议吗?谢谢!
编辑:目前这是我正在使用的解决方法,但我希望能够像原始动画一样保留幻灯片/剪辑动画。
<VisualState x:Name="Opened">
<Storyboard>
<DoubleAnimation Storyboard.TargetName="Popup"
Storyboard.TargetProperty="Opacity"
From="0"
To="1"
Duration="0:0:0.2">
<DoubleAnimation.EasingFunction>
<CircleEase EasingMode="EaseOut"/>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
<DoubleAnimation Storyboard.TargetName="PopupTransform"
Storyboard.TargetProperty="(TranslateTransform.Y)"
From="-20"
To="0"
Duration="0:0:0.2">
<DoubleAnimation.EasingFunction>
<CircleEase EasingMode="EaseOut"/>
</DoubleAnimation.EasingFunction>
</DoubleAnimation>
<!--Original SplitOpenAnimation here-->
</Storyboard>