windows-phone-7 – 为什么WP7全景页面会在更新时跳回?

我正在构建一个GPS相关的应用程序,显示其他计算中的坐标.我的演示代码设置为每秒触发事件.

每当我更新主页面UI(例如,具有计算的纬度的文本框)时,它都可以正常工作.

问题是如果我试图从一侧“轻弹”到另一侧,更改页面.在“轻弹”的过程中,如果要更新文本框,它会将主页面跳回到视图中.

没有视频很难在文本中解释.但想象一下,点击n-holding,然后轻轻地拉开全景屏幕 – 比如说,看看下一页,但还没有翻转.好吧,如果文本框在那段时间内要更新,你将松开鼠标点击保持,它会跳回到主页面.

一旦你到达下一页,它就会停留,我可以看到上一页的溢出更新.没什么大不了的.但它只是试图进入下一页.

我是WP7 / Silverlight的新手,所以我一直在尝试使用dispatcher来提高响应速度.无论我做什么(使用dispatcher),都会发生这种情况.所以,我猜这与更新的UI有关.

一些小代码总能帮助:

void GeoWatcher_PositionChanged(object sender,GeoPositionChangedEventArgs<GeoCoordinate> e)
{
    Deployment.Current.dispatcher.BeginInvoke(() => MyPositionChanged(e));
}
void MyPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate> e)
{
    var model = GeoProcessor.GetPosition(e.Position);

    latitude.Text = model.Latitude;
    longitude.Text = model.Longitude;
    altitude.Text = model.Altitude;
    accuracy.Text = model.Accuracy;
    direction.Text = model.Direction;
    speed.Text = model.Speed;
    speedAvg.Text = model.SpeedAvg;

}

当更新任何这些文本框时,屏幕会“跳转”回主页面.有点不好的经历.

也许这是正常的?知道用户是否试图“滑动”到下一页是否有事件可以吸引?

提前致谢.

解决方法

嗯,这感觉就像一个黑客.但我通过勾结一些事件得到了我想要的延迟.如果我应该使用其他事件(例如mousedown / mouseup),请告诉我.再次,这是一个黑客,但有效.

bool isChangingPage = false;
bool isCompleting = false;

public MainPage()
{
    InitializeComponent();
    this.Loaded += new RoutedEventHandler(MainPage_Loaded);

    this.ManipulationStarted += 
        new EventHandler<ManipulationStartedEventArgs>(MainPage_ManipulationStarted);
    this.ManipulationCompleted += 
        new EventHandler<ManipulationCompletedEventArgs>(MainPage_ManipulationCompleted);
}

void MainPage_ManipulationStarted(object sender,ManipulationStartedEventArgs e)
{
    isChangingPage = true;
}

void MainPage_ManipulationCompleted(object sender,ManipulationCompletedEventArgs e)
{
    if (isCompleting)
        return;
    isCompleting = true;

    Deployment.Current.dispatcher.BeginInvoke(() =>
    {
        Thread.Sleep(1000);
        isChangingPage = false;
        isCompleting = false;
    });
}

我现在要做的就是检查代码中的isChangingPage布尔值.并将其传递给事件等

相关文章

Windows2012R2备用域控搭建 前置操作 域控主域控的主dns:自...
主域控角色迁移和夺取(转载) 转载自:http://yupeizhi.blo...
Windows2012R2 NTP时间同步 Windows2012R2里没有了internet时...
Windows注册表操作基础代码 Windows下对注册表进行操作使用的...
黑客常用WinAPI函数整理之前的博客写了很多关于Windows编程的...
一个简单的Windows Socket可复用框架说起网络编程,无非是建...