c# - 像 MessageBox 或 Dialog 一样暂停执行

标签 c# wpf mvvm

我正在创建一个显示一些警报的应用程序。 使用 MessageBox.Show 没问题,但对于这个项目来说很丑。它是一个类似 Metro 的应用程序,因此我们创建了一个类似 Metro 的 MessageBox。

我们的自定义 MessageBox 是一个网格,可以在需要时更改其可见性。 问题是真正的 MessageBox 会在用户单击其“确定”时停止执行。

那么,我怎样才能模拟这种行为呢?

最佳答案

使您的自定义消息框成为一个表单。然后您可以调用 customMessageBoxFormInstance.ShowDialog().. 其 block 与消息框完全相同。

这是你会做的:

  • 创建一个类似于您的自定义 MessageBox 的表单。或许您可以将网格移到其中。
  • 在上面放一个按钮,将其 DialogResult 属性设置为 OK
  • 在您希望提醒显示的任何地方使用它:

    if (customMessageBoxInstance.ShowDialog() == DialogResult.OK) {
        // they clicked okay..
    }
    

它会像您期望的 MessageBox 那样阻止..

关于c# - 像 MessageBox 或 Dialog 一样暂停执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16848873/

相关文章:

c# - 列表框(多选)选定索引

c# - Operator = 没有为类型 UIElement 和 UIElement 定义..?

.net - 如何使元素能够在其容器外绘制?

c# - 如何将更改从模型获取到模型 View 中?

c# - 从 C# 中的重复字符串中确定唯一字符串

c# - 高效地将音频字节 - byte[] 转换为 Short[]

c# - TPL 并行 For 循环错误

c# - 如何摆脱 app.config 并将其全部移至代码中?

silverlight - 如何在 ListBox 中的 DataTemplate 中获取 TextBox 以通知 ViewModel 值更改

c# - 通知 ui wpf 中另一个线程发生了什么的最佳方法?