文章目录
  1. 1. UWP
    1. 1.1. Storyboard中的动画线不运行(无效)

记录一些开发过程中遇到的问题,或者疑惑的地方,在记录的时候,还没有解决或者找到原因,也许会在以后的时间里去验证和解决。如果知道了原因所在,也会及时更新并记录下来。

就当是一个历史的记忆,也避免日后在重复同样的问题。

最近更新时间:2015年11月14日

  • 2015年11月14日:UWP中Storyboard问题

UWP

在开发UWP应用过程中遇到的一些问题(疑惑)。

Storyboard中的动画线不运行(无效)

开发UWP应用,肯定少不了做响应式设计,毕竟在这里微软就直接没把调整窗口大小的权利交给开发者,所以为了保证在任何(绝大多数)情况下应用都能有正确的呈现,应用一般都需要针对不同大小的窗口做出不同的优化和响应。

我在应用中使用了一个RelativePanel作为布局容器,然后使用AdaptiveTrigger来响应不同的分辨率,最开始是只使用了VisualState.Setters属性,做了一下简单的显示和隐藏。但是在测试过程中,总是感觉这样直接的隐藏内容有些突兀,视觉上的感受很不顺眼,因此决定加一点动画,原本以为很简单的一件事,毕竟VisualState中就提供了Storyboard属性,可以直接添加一些针对UI元素的动画效果,因此直接使用了DoubleAnimation来操作控件的Width属性,结果运行之后却发现没有效果,控件宽度根本没有发生变化。

于是查看了一下新的DoubleAnimation对象的属性列表,发现有个EnableDependentAnimation属性,用于控制被认为是从属动画的动画是否可以运行,而根据定义,我上面定义的动画应该属于从属动画 的,因此我显式的将这个属性设置为True,但是结果却很意外,该动画仍然没有起作用。

微软为了优化应用性能也是用尽了方法,现在连动画系统都改变这么多,不再是以前那样所有动画都一视同仁,只要声明动画目标和属性路径就行了。

最后无奈之下,只好换成RenderTransform来实现效果,也就是独立动画,但是有些效果却没有按照计划样式来实现,因为毕竟使用RenderTransform并不会触发布局时间,也就不会引起布局的更新,而有所改变的也只有一个受RenderTransform控制的元素罢了。

下面是应用运行环境:

  • 系统:Windows 10 专业版,版本 1511(OS内部版本 10586.3),会员快速通道
  • Runtime:.Net Framework 4.6
  • Visual Studio:版本 14.0.23107.0 D14REL
  • Microsoft .NET Framework:版本 4.6.01038
文章目录
  1. 1. UWP
    1. 1.1. Storyboard中的动画线不运行(无效)