65.9K
CodeProject 正在变化。 阅读更多。
Home

WPF 消息框服务

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.30/5 (10投票s)

2013年11月13日

CPOL

2分钟阅读

viewsIcon

42161

一个基于 WPF 实现的消息框服务。

介绍 

2017 年 2 月.

我发布了一个 ContentDialogService 实现,它也支持通过与以下项目相同的 API 使用模态对话框:这是 CodeProject 文章的链接

https://codeproject.org.cn/Articles/1170500/A-ContentDialog-in-a-WPF-Desktop-Application

2013 年 11 月:

我发布了一个基于 WPF 的消息框服务实现,地址是:https://github.com/Dirkster99/MsgBox

 

有关第一个版本的完整详细信息,请参阅功能描述和文档。

  • 截至 .NET 4.0 的标准 System.MessageBox API 覆盖范围
  • 可主题化的 WPF MVVM 兼容消息框服务
  • 本地化为多种语言
  • 显示异常摘要和详细信息
  • 3 个图标集
  • 2 种窗口 Chrome 样式 + Metro 深色和浅色主题
  • 超链接显示
  • Esc 键、Alt-F4、窗口关闭按钮 (X) 的解释
  • 以一种不错的方式支持强制选择,并向用户发出通知

背景  

该实现是我编辑器项目的衍生:https://github.com/Dirkster99/Edi

最好的地方在于异常显示 - 当运行发布版本并仍然尝试找到在调试版本中可能不会出现的某些问题时,它对我有帮助

result = Msg.Show(exp, "Unexpected Error",
  MsgBoxButtons.OK, MsgBoxImage.Error, MsgBoxResult.NoDefaultButton,
  "https://codeproject.org.cn/script/Articles/MemberArticles.aspx?amid=7799028",
  "https://codeproject.org.cn/script/Articles/MemberArticles.aspx?amid=7799028",
  "Please click on the link to check if this is a known problem (and report it if not):", null, true); 

使用代码 

该代码非常易于使用(有关更多详细信息,请参阅发布的演示应用程序)。启动一个新的 WPF 应用程序项目并引用 MsgBox.DLL。例如,使用以下代码

MsgBoxResult result = Msg.Show("hello world message", "hellow world caption"); 

 

显示一个简单的消息框(有关更高级的应用程序,请参阅 codeplex 站点)。

兴趣点 

其他消息框服务实现通常是特定框架的一部分。因此,重新使用这些通常需要承担初始化和使用复杂框架的麻烦,而所有需要的只是使用消息框服务。有时甚至不可能在不重新使用完整框架的情况下使用特定框架的消息框服务。

我见过的许多框架都不关心 System.MessageBox API。因此,在重构以适应该框架时,通常需要进行大量的转换。MsgBox 则不然。

如果您觉得发布的文档有帮助,或者您缺少任何关键内容,请告诉我。我也想看看是否有人觉得这有用,并实际将其用于他们的应用程序。请给我您的反馈 - 好的和坏的 - 如果有的话 - 非常感谢。

历史 

  • 2013 年 11 月 13 日 - 首次发布。
© . All rights reserved.