当UI线程被卡住时,WPF窗口会轻微移动

当UI线程被卡住时,WPF窗口会轻微移动,wpf,windows,user-interface,Wpf,Windows,User Interface,我注意到,当我们的WPF应用程序的GUI线程被卡住几秒钟时,应用程序的主窗口会向上向左移动几个像素,然后,当GUI线程被释放时,窗口会返回到它的位置 我还注意到,在Visual Studio中,当我保存一个复杂的文件并忙于清理它时,会发生这种情况–Visual Studio窗口会将几个像素移到顶部和左侧,然后,当工作完成时,它会返回到以前的位置 这并不总是发生,也不容易复制。当窗口最大化时,似乎不会发生这种情况 有人能说一下为什么会发生这种情况,更重要的是,如何避免这种情况(除了防止GUI线程卡

我注意到,当我们的WPF应用程序的GUI线程被卡住几秒钟时,应用程序的主窗口会向上向左移动几个像素,然后,当GUI线程被释放时,窗口会返回到它的位置

我还注意到,在Visual Studio中,当我保存一个复杂的文件并忙于清理它时,会发生这种情况–Visual Studio窗口会将几个像素移到顶部和左侧,然后,当工作完成时,它会返回到以前的位置

这并不总是发生,也不容易复制。当窗口最大化时,似乎不会发生这种情况


有人能说一下为什么会发生这种情况,更重要的是,如何避免这种情况(除了防止GUI线程卡住…)

如果除了你的应用程序之外,VisualStudio也发生了这种情况,那么它就不是你应用程序中的一个bug。这很可能是航空主题引擎的一个缺陷。不过,防止GUI线程被卡住听起来是个好主意!这就是我要关注的。请确保您在UI线程上根本没有运行任何阻塞操作,而是将它们剥离到后台线程上。@Cody:正在处理这个问题,但如果我需要在树中选择一个具有10000个兄弟节点的节点,则必须在GUI线程中完成,WPF需要时间来完成此操作。。。