操纵事件导致UI冻结或变慢

时间:2011-10-04 14:10:33

标签: c# .net wpf

我正在使用多点触控以便对项目进行捏合操作。我有一个DispatchTimer循环遍历一组图像,当我捏时,我更改了当前的Image控件(我扩展了),这样就可以看到你正在捏动画。

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

此外,当我使用DispatchTimer制作多个动画时,捏其中一个会冻结剩下的动画。有什么东西我错过了吗?当我在屏幕上触摸时,为什么整个用户界面似乎都会冻结?

我的操作事件冻结了UI。

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

    e.Handled = true;
    return;
}

更新:我发现即使将空事件处理程序附加到ManipulationDelta事件并且已启用Manipulation,UI也会冻结。

2 个答案:

答案 0 :(得分:0)

通过在Manipulation处理程序之外优化我的代码来解决这个问题。

答案 1 :(得分:0)