UWP ComboBox不再具有打开/关闭动画(build 14393)

时间:2017-01-10 01:15:52

标签: c# xaml uwp win-universal-app windows-10

我正在我的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>

1 个答案:

答案 0 :(得分:0)

此错误通常发生在已在系统级别禁用动画的开发人员计算机上。内置动画遵循此系统设置。你可以仔细检查。

enter image description here