(Thanks to Brendan Clark for this explanation)

If you have a XAML app in snap view that starts and animation, and then switch to another view state while that animation is running, elements like a Shape can become very blurred. The reason for this is that Shapes are realized/rendered at a specific scale, as is text. Recreating these realizations at new scale can be very expensive, so the XAML framework chooses to avoid creating any new realizations during animations. This reduces the chances of producing much more serious visual glitches during the animation.

When changing view states, then, a shape that’s been realized for a smaller scale will be used when scaling up to the larger view, resulting in blurriness, until the animation ends and the shape is realized at the final scale. It’s not a concern in the other direction, however, because a larger realization would get scaled down to a smaller, which works just fine except perhaps for other visual artifacts. (So the final realization after the animation will look better.)

The best workaround for this at present is to simply stop animations when an app gets resized, then start those animations again after the size change has finished. The XAML framework then has a static frame to use when resizing, which should produce better results.


Comments are closed