我遇到了this thread中描述的问题。
dotTrace告诉我“手写笔输入”是有罪的。我尝试了the code和Ron Z发布的Chaim Zonnenberg,但没有效果。
Rash提出了2种解决方法:
只有在机器中运行任何自动化客户端(如屏幕阅读器,平板电脑中的tabtip等)时,才会触发自动化代码。因此,摆脱这种情况的一种方法是关闭任何自动化客户端应用程序。
如果一个不可行,那么另一个选择是,UIElementHelper.InvalidateAutomationAncestors只有在应用程序的自动化树稀疏时才会花费更长的时间(如果使用自定义窗口自动化对等方禁用了楼宇自动化树,则会发生)并且可视化树是稠密。所以另一种解决方案是禁用任何自定义自动化代码,并允许WPF构建完整的自动化树。这样可以加快UIElementHelper.InvalidateAutomationAncestors的速度。
但如何关闭tabtip?我试图停止并禁用以下服务,但没有工作,tabtip.exe仍然在后台运行:
Rash说这个问题应该在.NET 4.0 SP1中解决。有谁知道.NET 4.0 SP1的发布日期?
我正在使用Visual Studio 2010,Windows 7 64位,Wacom Graphire 4。
由于
更新:
要关闭tabtip.exe,我只需要在禁用上述服务后重新启动Windows。但仅凭这一点并没有解决我的问题。为了解决性能问题,我还必须禁用“Wacom Consumer Touch Service”。
根据this thread(2011年3月22日):
there is no published timeline for .NET Framework 4.0 sp1
答案 0 :(得分:0)
我最近不得不在我们的项目中使用WPF工具处理这个确切的问题。
崩溃发生的机器正在运行.NET Framework 4.5。
当工具崩溃时,我们可以看到.NET PresentationFramework UIAutomation中发生了崩溃。 崩溃异常是:PresentationFramework.dll中发生了'System.ArgumentOutOfRangeException'类型的第一次机会异常 - >此时,该漏洞似乎出现在.NET Framework中
但是接下来我们可以看到我们在UIAutomation调用中崩溃的堆栈,它引导我们进入这个线程,并认为该模块是由Wacom服务触发的。
在应用程序崩溃的计算机上运行的Wacom驱动程序是:Wacom Tablet 6.3.1w3 降级到以前的版本后,一切都开始工作:WacomTablet_6.3.3-4
现在我们知道了问题的根源,我们开始寻找一种解决方法,以便仍能使用最新的驱动程序。 所以这就是它的好处是它似乎不会影响wacom数位板的功能: - 转到“控制面板”。 - 双击“程序和功能” - 单击左侧标题为打开或关闭Windows功能的链接 - 加载时,取消选中“Tablet PC可选组件”(在Windows 7中可称为“Tablet PC组件”)。 - 单击“确定”按钮。 这可能需要您重新启动Windows计算机。
这对我们起了作用。
玩得开心!