在Windows 8 App中,屏幕在闪屏和扩展闪屏之间闪烁

时间:2012-10-05 09:27:20

标签: c# xaml windows-8 winrt-xaml

我正在编写Windows 8应用程序,它从互联网服务加载数据,所以我在加载过程中使用扩展启动。 当应用程序启动时,它会显示启动画面一秒钟,然后导航到ExtendedSplash。在飞溅之间切换时,你可以看到屏幕闪烁/闪烁几分之一秒。我可以以某种方式避免这种闪烁吗?

基本上,在App.xaml.cs中:

protected override async void OnLaunched(LaunchActivatedEventArgs args)
{
        if (_rootFrame == null)
        {
            _rootFrame = new Frame();
            SuspensionManager.RegisterFrame(_rootFrame, "appFrame");
        }

        // extended splash
        _rootFrame.Navigate(typeof (ExtendedSplash), args.SplashScreen);
        Window.Current.Content = _rootFrame;
        Window.Current.Activate();

        await PerformDataFetch(); // also navigate to main page after loading complete
}

扩展启动与splash +加载环的布局相同。

1 个答案:

答案 0 :(得分:3)

而不是:

_rootFrame.Navigate(typeof (ExtendedSplash), args.SplashScreen); 

您可能想尝试:

//The key is not how you get the new splash screen
_rootFrame.Content = new ExtendedSplash(args.SplashScreen);

//but rather in how you GET TO the Splash Screen... 
// Navigation will trigger a complete refresh, reassigning a value should not. 
Window.Current.Content = _rootFrame;

通过这种方式,您将避免触发刷新屏幕的导航事件。并且Frame的内容应该无缝更新。