我正在使用多点触摸来允许对项目执行捏动作。我有一个DispatchTimer
循环通过一组图像,当我捏,我改变了目前的Image
控制(我扩展),使它看起来你捏动画。导致用户界面冻结或变慢的操作事件
我已经做了各种优化,但我无法弄清楚为什么动画冻结或变得非常慢,而我的手指在屏幕上移动。即使当我禁用除图像动画以外的所有东西时,移动手指仍会导致相同的问题。
另外,当我有多个使用DispatchTimer
的动画时,捏住其中一个冻结其余的。有什么我失踪了吗?为什么当我在屏幕上触摸时整个用户界面似乎冻结?
我的操作事件冻结了用户界面。
private void _ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
if (e.Manipulators.Count() < 2) return;
e.Handled = true;
return;
}
更新:我发现UI冻结甚至当空的事件处理程序连接到ManipulationDelta
事件和操纵被打开。
使用Dispatcher.BeginInvoke() –
凡我会用吗? – DanO
详细阐述了e.Manipulators.Count()的逻辑和_ManipulationDelta的事件接线..描述了更多关于实现的细节 –