在Windows 8.1 Preview中XAML缓存行为是否发生了变化

时间:2013-07-12 20:54:19

标签: windows-8.1

我有一个重复的XAML动画,有多个缩放箭头,每秒更新几次,在Silverlight,Win8,WinPhone7和WinPhone8上运行良好。但是现在,在Windows 8.1预览版中,我遇到了以下意外行为:

  1. 通过所有缩放尺寸的一个周期,动画箭头的初始显示是正确的。
  2. 在动画的第二次和随后的重复中,箭头缩放到正确的大小,但是显然是箭头的低rez缓存位图的放大版本。这看起来很可怕。
  3. 如果我切换应用并返回我的应用,初始显示是正确的,然后恢复到坏的低rez版本(换句话说,行为1和2重复)。
  4. 我认为这是由于Win8.1预览中的UIElement缓存行为发生了一些变化,但无法在此区域找到任何更改的文档。

    UiElement.CacheMode似乎可能会影响修复,但我想知道这种行为是设计还是需要对最终版本进行代码更改。

1 个答案:

答案 0 :(得分:0)

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

rotateGroup.CacheMode = null;

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

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