开发问题记录
记录一些开发过程中遇到的问题,或者疑惑的地方,在记录的时候,还没有解决或者找到原因,也许会在以后的时间里去验证和解决。如果知道了原因所在,也会及时更新并记录下来。
就当是一个历史的记忆,也避免日后在重复同样的问题。
最近更新时间:
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