2011-10-04 29 views
2

我正在使用多点触摸来允许对项目执行捏动作。我有一个DispatchTimer循环通过一组图像,当我捏,我改变了目前的Image控制(我扩展),使它看起来你捏动画。导致用户界面冻结或变慢的操作事件

我已经做了各种优化,但我无法弄清楚为什么动画冻结或变得非常慢,而我的手指在屏幕上移动。即使当我禁用除图像动画以外的所有东西时,移动手指仍会导致相同的问题。

另外,当我有多个使用DispatchTimer的动画时,捏住其中一个冻结其余的。有什么我失踪了吗?为什么当我在屏幕上触摸时整个用户界面似乎冻结?

我的操作事件冻结了用户界面。

private void _ManipulationDelta(object sender, ManipulationDeltaEventArgs e) 
{ 
    if (e.Manipulators.Count() < 2) return; 

    e.Handled = true; 
    return; 
} 

更新:我发现UI冻结甚至当空的事件处理程序连接到ManipulationDelta事件和操纵被打开。

+0

使用Dispatcher.BeginInvoke() –

+0

凡我会用吗? – DanO

+0

详细阐述了e.Manipulators.Count()的逻辑和_ManipulationDelta的事件接线..描述了更多关于实现的细节 –

回答

0

通过优化操作处理程序外部的代码解决了此问题。