尝试从WPF窗口打开新窗口时,出现STAThread异常

时间:2018-08-15 09:48:12

标签: c# wpf visual-studio sta

我有一个wpf项目,我试图做一个弹出式窗口,这是我编写的一个单独的wpf窗口。我正在尝试做一个简单的Showdialog,就像我之前在其他几个项目中所做的一样。我只是从MainWindow.xaml.cs

    PopupWindow myPopup = new PopupWindow();
    myPopup.ShowDialog()

在PopupWindow()构造函数中,我得到一个

  

调用线程必须是STA,因为许多UI组件都需要

例外。我四处搜寻,我想我了解引起异常的常见原因,我也看到了可能的解决方案。

  1. 将STAThread属性添加到Main。好吧,它是一个WPF项目,应该作为STAThread生成,而且我还从生成的Main中看到确实如此。
  2. 在单独的线程中启动新窗口。我不想这样做,我希望该窗口阻止当前线程,并返回用户在窗口上所做的选择以进一步运行。

最初的项目不是我创建的,我不得不将其从后来离开的同事那里接手。我可以想象他通过创建项目做了一些讨厌的事情,并且设置错误,这就是为什么主窗口不是STAThread。但是,我不知道这些设置可能是什么,以及在哪里可以开始寻找它们。

你们有没有看到这个问题?您能帮我找到为什么主窗口不是STAThread吗?

0 个答案:

没有答案