我正在开发一个Windows Phone应用程序。当我启动时,很快会显示启动画面,并显示MainPage.xaml
。但是,在MainPage中,我使用通常的代码设置相机:
if (PhotoCamera.IsCameraTypeSupported(CameraType.Primary))
{
_photoCamera.Initialized += OnCameraInitialized;
// And other event handling
viewfinderBrush.SetSource(_photoCamera);
}
这是简化的,但一切正常。我的问题是,这需要一段时间(mabye 0.5 - 1秒,我没有准确计时)。
所以我的用户得到的是一个快速的闪屏,他/她看不到它;和第一页只需要很小的一部分来体验它稍微滞后/慢。
我想改变它。在初始化所有内容之前,请先显示启动画面。这为我提供了品牌推广的额外好处,也为用户带来了不错的体验。
我试过这个:
这个“有效”,但我可以在启动画面和我的图像/弹出窗口之间看到黑色闪光。有没有办法使这种过渡无缝?或者这是WP7中相当正常的行为吗?
答案 0 :(得分:1)
您的第一个选项应该可以工作 - 但是要理解,在一次通过UI线程方法的行程中,UI实际上不会更新,直到所有代码都被执行。所以把它分解成碎片。
1)加载您的MainPage.xaml,默认情况下,启动画面会填充屏幕
2)为OnNavigatedTo和LayoutUpdated添加事件处理程序。当命中OnNavigatedTo时,将标志设置为true。在LayoutUpdated中,检查该标志是否为true,将flag设置为false,然后对上述方法运行Dispatcher.Invoke()调用。
3)删除图像或在完成该方法后将其设置为折叠。