【问题标题】:How to override window show operation?如何覆盖窗口显示操作?
【发布时间】:2011-09-30 20:10:05
【问题描述】:

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

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

我知道我需要引入 Dispatcher 来调用消息框来消除错误。由于消息框在许多地方使用,我能想到的最快解决方法是覆盖 show 和 showwindow 并从那里创建和显示消息框。

请告诉我如何覆盖 wpf 窗口的 Show 和 ShowWindow 事件

【问题讨论】:

  • 你不能。它没有标记为虚拟...也许有人会为您提供替代方案。
  • 这个指向类似问题的链接可能会有所帮助:stackoverflow.com/questions/2378016/…
  • 公开新布尔值? ShowDialog() { /* 等 */ }
  • 可以在窗口类的构造函数中设置ApartmentState.STA吗?

标签: c# wpf


【解决方案1】:

我会创建一个静态实用程序类,它有一个方法(可能还有一些重载)来为您显示此表单。有点像 Windows.Forms 中的MessageBox。在该类中,您可以编写正确显示窗口所需的任何内容,而无需重复自己。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-01
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    • 2018-03-05
    • 1970-01-01
    相关资源
    最近更新 更多