2

我有多个缩放箭头的重复 XAML 动画,每秒更新几次,这在 Silverlight、Win8、WinPhone7 和 WinPhone8 上运行良好。但是现在,使用 Windows 8.1 Preview 我得到了以下意外行为:

  1. 动画箭头的初始显示在所有缩放尺寸的一个循环中都是正确的。
  2. 在动画的第二次和后续重复中,箭头被缩放到正确的大小,但显然都是放大版本的低 rez、箭头缓存位图。这看起来很可怕。
  3. 如果我切换应用程序并返回到我的应用程序,初始显示是正确的,然后恢复到糟糕的低分辨率版本(换句话说,行为 1 和 2 重复)。

我认为这是由于 Win8.1 Preview 中的 UIElement 缓存行为发生了一些变化,但找不到任何有关该区域更改的文档。

UiElement.CacheMode 似乎是实现修复的可能候选者,但我想知道这种行为是设计使然,还是需要更改最终版本的代码。

4

1 回答 1

0

回答我自己的问题:解决 Windows 8.1 Preview XAML 中的错误/功能的方法是将以下内容添加到与有问题的 UIElement 关联的TransformGroup中:

rotateGroup.CacheMode = null;

我完全不知道为什么这个改变是必要的。在添加上述 hack 之前对问题的进一步描述:

如果调整大小的箭头发生少量增量变化,则会出现错误。如果比例因子在较大的跳跃中发生变化,那么错误就会消失并且箭头会正确显示。

于 2013-08-03T22:33:07.603 回答