C# 如何覆盖窗口显示操作?

C# 如何覆盖窗口显示操作?,c#,wpf,C#,Wpf,我有一个从窗口派生的类来向用户显示消息。问题是在我的应用程序的某些地方,它抛出了一个异常 调用线程必须是STA,因为许多UI组件需要 这个 我知道我需要引入Dispatcher来调用messagebox来消除错误。由于messagebox在许多位置使用,所以我能想到的最快修复方法是覆盖show和showwindow,并从那里创建和显示messagebox 请告诉我如何覆盖wpf窗口的Show和ShowWindow事件。我将创建一个静态实用程序类,该类具有一个方法(可能还有一些重载)来为您显示此表

我有一个从窗口派生的类来向用户显示消息。问题是在我的应用程序的某些地方,它抛出了一个异常

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

我知道我需要引入Dispatcher来调用messagebox来消除错误。由于messagebox在许多位置使用,所以我能想到的最快修复方法是覆盖show和showwindow,并从那里创建和显示messagebox


请告诉我如何覆盖wpf窗口的Show和ShowWindow事件。我将创建一个静态实用程序类,该类具有一个方法(可能还有一些重载)来为您显示此表单。有点像Windows.Forms中的
MessageBox
。在该类中,您可以编写正确显示窗口所需的任何代码,而无需重复自己的操作。

您不能。它没有标记为虚拟。。。也许有人会为你提供另一个选择。这个链接到一个类似的问题可能会有帮助:公共新学校?ShowDialog(){/*etc*/}是否可以在window类的构造函数中设置ApartmentState.STA?