首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WPF UI自动化问题

WPF UI自动化问题
EN

Stack Overflow用户
提问于 2011-06-16 02:16:28
回答 2查看 5.9K关注 0票数 4

此线程属于this

我想问的是,我需要在何处插入this中的解决方法

我有一个WPF应用程序,它在Windows 7的一些客户端上有性能问题。在Windows XP上,一切都运行得很快。应用程序有一个MainShell和一些子窗口。在某些计算机上,MainShell有时会挂起,子窗口也会挂起。现在,我是否必须在所有窗口中插入上述链接中线程的变通方法?关于这个还有其他的解决方法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-19 01:08:37

我一直在开发一个应用程序,它在几乎所有东西上都很好,但WPF控制在某些笔记本电脑上速度很慢(联想)。它是滞后的,冻结的,通常是禁止使用的。

我做了以下工作:

fix.

  • Downloaded

  • 实现了上面的代码:改进了它,但没有修复热修复-- http://archive.msdn.microsoft.com/KB978520 (可能不是Windows - http://archive.msdn.microsoft.com/KB2484841 (即使你有Windows7/ .NET 4也肯定需要)

可能只需要数字3,但它起作用了。只是在这里张贴,这样人们就不会失去我在内存分析器等方面失去的日子。

票数 3
EN

Stack Overflow用户

发布于 2011-07-02 01:18:47

在我的例子中,它是通过将代码添加到主窗口来工作的。但是,我对它进行了一些简化:

代码语言:javascript
复制
public partial class MyMainWindow : Window
{
    public MyMainWindow() {
          GotFocus += WindowGotFocus;
    }

    private void WindowGotFocus(object sender, RoutedEventArgs e)
    {
        WindowInteropHelper helper = new WindowInteropHelper(this);
        var mainWindowAutomationElement = AutomationElement.FromHandle(helper.Handle);
        Automation.AddStructureChangedEventHandler(mainWindowAutomationElement, TreeScope.Element,
                                                   delegate {});
        GotFocus -= WindowGotFocus;
    }
}

在我的机器上,这种方法的唯一问题是调试器窗口会被如下消息弄得乱七八糟:

在PresentationCore.dll

  • A中出现类型为System.Windows.Automation.ElementNotAvailableException‘的第一次机会异常在UIAutomationClientsideProviders.dll

  • A中出现类型为“System.ArgumentException”的第一次机会异常在
  • 中出现类型为“System.NotSupportedException”的第一次机会异常在UIAutomationClient.dll

中出现类型为“System.ComponentModel.Win32Exception”的第一次机会异常

这一切都会发生很多很多次。我不能修复这些消息,但我的应用程序现在运行得更快了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6362367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档