C# 调试WPF窗口会阻塞编辑器

C# 调试WPF窗口会阻塞编辑器,c#,wpf,visual-studio,C#,Wpf,Visual Studio,每当我在初始化代码中调试WPF程序或Visual Studio中的任何windows程序时,使用step-into功能,WPF窗口总是位于编辑器的顶部,我看不到它后面的内容,这当然是在初始化主应用程序的过程中,主应用程序变得无响应,因此无法移动空闲窗口,以便我可以看到我正在调试的内容 有办法解决这个问题吗?这可能是一个愚蠢的问题,如果有一个明显的解决办法,我在高级道歉。希望这个问题有意义 更新:这是我正在处理的问题的屏幕截图。 正如您在这里看到的,“Ernanis Renamer”窗口会阻止视图

每当我在初始化代码中调试WPF程序或Visual Studio中的任何windows程序时,使用step-into功能,WPF窗口总是位于编辑器的顶部,我看不到它后面的内容,这当然是在初始化主应用程序的过程中,主应用程序变得无响应,因此无法移动空闲窗口,以便我可以看到我正在调试的内容

有办法解决这个问题吗?这可能是一个愚蠢的问题,如果有一个明显的解决办法,我在高级道歉。希望这个问题有意义

更新:这是我正在处理的问题的屏幕截图。 正如您在这里看到的,“Ernanis Renamer”窗口会阻止视图,如果我尝试将其拖动并移开,它不会让我看到,因为它被挂起,需要继续,直到显示所有组件。

**更新:**下面是一段视频,讲述了我每次尝试在初始化过程中调试时都会遇到的一个简单麻烦。
最顶层的行为可能是以不明显的方式添加的(例如,窗口样式或一些古怪的代码隐藏),这就是为什么您找不到它的原因

要明确回答您的“窗口”是否被设置为“始终在顶部”/“最顶部”,请下载Windows Detective

安装它,并使用“管理权限”运行它

在应用程序窗口运行时,“拾取”/“查找”应用程序窗口(确保它是最外层/主框架窗口),然后选择“编辑属性”(如图所示)

然后,您就有了各种方法来“处理”错误窗口中的情况

  • 1) 使用Window Detective为Visual Studio启用“始终在顶部”功能,这样它就可以出现在应用程序窗口之前

  • 2) 使用Window Detective关闭应用程序窗口的“始终在顶部”

  • 3) 将一些代码放入你的应用程序中(在窗口初始化之后,但在你调试/跟踪的地方之前),这样如果你从调试器连接/运行它,它就会关闭最顶层,例如

    if (System.Diagnostics.Debugger.IsAttached)
    {
        this.Topmost = false;
    }
    

如果这是设计的“一部分”,您就不会忘记“保留”最顶层的行为。

通常,调试器将保持在前面。为什么你的情况不同?为什么在初始化过程中,您的窗口甚至是可见的(因为它还没有初始化),更不用说阻止调试器窗口了?将TopMost设置为true将导致这种情况发生,但只有在窗口可见后才会发生(修复方法很明显:不要设置TopMost)。你需要更具体一些,确保包含足够的细节,最好能很好地展示你是如何进入这种情况的。@PeterDuniho这里我添加了一个我正在处理的问题的屏幕截图。我可能已经意识到,我试图进入的是在窗口初始化的中间,因此显示了一个不完整的窗口。抱歉,屏幕截图没有改善你的问题。你对症状的描述很清楚。问题在于理解原因,而你的问题中没有一条信息可以帮助我们理解这一点。@PeterDuniho哦,我理解。我的印象是,这可以通过编辑器中的一个简单选项来修复。我将添加更多关于原因的信息,作为初学者,结果应用程序可以通过拖动窗口来移动。如果可以的话,我会尝试添加一个视频来轻松描述我是如何进入症状的。最可能的解释是您已经为窗口设置了
TopMost
属性。如果您仍在初始化窗口,那么仍然存在一个问题:为什么您的窗口已经可见。同样,您需要提供的细节是那些解释为什么您的程序在第一时间会这样运行的细节。在你的问题中添加视频是没有用的。请阅读和阅读。