1

在我的 WinRT XAML 应用程序中,我的 Main.xaml 页面上有一个 EntranceThemeTransition,当您第一次加载应用程序时它不会播放(App.Xaml 执行 Main.xaml 的帧加载)。但是,一旦加载了应用程序并且我离开 Main 然后返回它就会播放。我在我构建的其他 WinRT 应用程序中注意到了这一点。

它是已知的错误还是允许更快启动的功能?我花时间做了一个很好的介绍过渡,遗憾的是大多数用户不会看到它。似乎转换在应用程序加载时在后台加载,当用户在页面上加载时,转换已完成。

目前,我正在使用 Thread.Wait 和其他一些技巧——但它们并没有使这成为一种“快速流畅”的体验,并且当您从另一个页面导航回它们时,它们会使过渡看起来很笨拙。还有其他人对此有问题吗?强制入口动画在首次加载时播放的最佳做法是什么?提前致谢!

4

2 回答 2

0

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

您可以调整此处给出的代码:延迟加载 XAML并添加 IsLoaded 属性并将其绑定到当 VM 完成从模型层加载数据时您将从 ViewModel 公开的 IsLoaded 属性。当 DeferredContentProvider 中的 IsLoaded 属性发生变化时,您将调用 LoadContent。

于 2015-07-27T21:27:49.650 回答
-1

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

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

于 2012-07-17T16:44:07.840 回答