繁体   English   中英

按钮上的Windows Phone 7开发延迟

[英]Windows Phone 7 Development Delay on Buttons

我在C#中为Windows Phone 7开发创建了一个按钮。 它包含一个动画,点击后我想要显示动画,然后按钮导航到下一页。

使用Thread.Sleep(4000)只是崩溃应用程序,我想知道我是如何做到这一点。

有没有办法延迟导航代码?

private void batnballBtn_Click(object sender, RoutedEventArgs e)
{
    NavigationService.Navigate(new Uri("/PictureGame.xaml", UriKind.Relative));
}

据推测,动画是一个Storyboard 您可以在Storyboard的Completed事件中导航。

myStoryboard.Completed += (s, e) =>
{
    myStoryboard.Stop();        
    NavigationService.Navigate(new Uri("/PictureGame.xaml", UriKind.Relative));
};

这样您就不需要预测动画将花费多长时间,使代码更具可重用性,并且您不必担心手动处理多个线程。

使用一个线程:

http://techkn0w.wordpress.com/2012/04/18/using-a-background-thread-in-windows-phone-7-wp7/

您正在停止UI线程,这就是按钮冻结的原因。

只有一个线程负责管理UI,因此,如果在执行冗长的操作或使其休眠时阻止它,则UI流程管理将被冻结,直到该工作完成。

像这样的东西:

private void batnballBtn_Click(object sender, RoutedEventArgs e)
{
        ThreadPool.QueueUserWorkItem((WaitCallback)delegate(object state)
        {
            Thread.Sleep(4000);

            this.Dispatcher.BeginInvoke((Action)delegate
            {
                NavigationService.Navigate(new Uri("/PictureGame.xaml", UriKind.Relative));
            });
        });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM