WinRT XAML应用程序中第一次加载时未播放的转换

WinRT XAML应用程序中第一次加载时未播放的转换,xaml,windows-8,microsoft-metro,windows-runtime,winrt-xaml,Xaml,Windows 8,Microsoft Metro,Windows Runtime,Winrt Xaml,在我的WinRT XAML应用程序中,我的Main.XAML页面上有一个EntertThemeTransition,当您第一次加载应用程序时,它不会播放(App.XAML执行Main.XAML的帧加载)。然而,一旦应用程序被加载,我离开主应用程序,然后回到主应用程序,它就开始播放了。我在我构建的其他WinRT应用程序中也注意到了这一点 这是一个已知的bug还是一个允许更快创业的特性?我花了时间做了一个很好的介绍转换,可惜大多数用户都看不到。似乎在后台加载转换,而应用程序加载,当用户在页面上滑动时

在我的WinRT XAML应用程序中,我的Main.XAML页面上有一个EntertThemeTransition,当您第一次加载应用程序时,它不会播放(App.XAML执行Main.XAML的帧加载)。然而,一旦应用程序被加载,我离开主应用程序,然后回到主应用程序,它就开始播放了。我在我构建的其他WinRT应用程序中也注意到了这一点

这是一个已知的bug还是一个允许更快创业的特性?我花了时间做了一个很好的介绍转换,可惜大多数用户都看不到。似乎在后台加载转换,而应用程序加载,当用户在页面上滑动时,转换完成


目前,我正在玩Thread.Wait和其他一些黑客游戏,但他们并没有让这成为一种“快速流畅”的体验,当你从另一个页面返回到它们时,它们会让过渡看起来很粗。还有其他人对此有意见吗?在第一次加载时强制播放入口动画的最佳实践是什么?提前谢谢

当我在没有调试的情况下进行发布构建并运行应用程序时,我看到问题消失了,或者至少变得不那么明显


否则,我会显示一个带有进度条的加载屏幕,并在应用程序启动之前预加载图像。

我认为这主要是因为元素已经在XAML树中创建,但是当您从web服务加载数据时,这些元素绑定到的内容是唯一延迟的内容。所以从技术上讲,它是动画,但你看不到它,因为它们没有内容。您可以通过使用DeferredContentPresenter来修复它,它将XAML作为数据模板保存,等待VM指示它已加载数据。然后可以使用DataTemplate上的LoadContent函数创建XAML树。现在,由于元素已创建,同时数据也可用,您应该可以看到入口动画


您可以修改这里给出的代码:并添加一个IsLoaded属性,并将其绑定到当VM从模型层加载完数据后将从ViewModel中公开的IsLoaded属性。当此IsLoaded属性在DeferredContentProvider中更改时,您将调用LoadContent。

我删除了一些作为转换一部分的较大图像资源(一些在120k范围内),其余的资源现在动画效果良好。我正在尝试减少K大小,并将图像嵌入到资源中。有人有这方面的经验吗?