This project contains a message box service locator implementation implemented in C# and WPF.
This project is a spin off from the Edi project at: https://edi.codeplex.com/
and is published in a seperate project to enabling other projects to re-use the existing functionality.
- The implemented message box service covers the System.MessageBox API (as off .Net 4.0) to support projects that are initially based on generic message boxes and which to fully convert into WPF themeable UI (including theming of message boxes).
- There are two Window Chrome Styles:
- The standard window chrome
- A custom window chrome that can be re-style and is initially setup as metro style window
- Checkout the Limitations of Theming that are provided in this project to understand this
- 3 themes are available out of the box:
- Generic (with standard chrome)
- Metro Dark
- Metro Light
- The provided implementation contains 3 icon sets (generic, light metro, and dark metro). But all icons used can be re-defined via resource definition in the Resource dictionary of the consuming application.
- Message box labels and tool tips are localized and currently available in (more can be added on request):
- Chinese (simplified)
- Message Box displays can contain a hyperlink (which can either point to an online resource, knowledge base, or a user feedback site. This can be used to users enter bug reports in an integrated, yet, loose manner.
- Message Box displays can include a Display of Exceptions which means basically that developers can run the Release version and get meaningful feedback provided that they use exceptions in their code.
- Exception details are shown in an extra expander and a summary of all inner exceptions plus last exception is displayed as summary
- The Escape key gesture on a message box can be configured to let the developer decide how escape can be interpreted from an application's point of view.
E.g.: The application asks the user whether a changed file should be saved or not before closing the application and the dialog contains a Yes
, and Cancel
option. Pressing escape on this dialog could be setup to be interpreted as cancel with the expectation that the application remains open and the file in questions is neither saved nor abandoned.
- The display of message boxes can be configured such that a user must answer with a provided choices (e.g.: yes, no, cancel, ok, or close) rather than closing a dialog via Alt-F4, Escape Key, or Window Close (X) button. This feature is called Forced Choice because the user cannot close a window without answering a specific question. This way of interaction is a last resort thing that should be used only where appropriate.
- Each close gesture (Alt+F4, Escape Key, or Window Close (X)) results into a user notification being shown -the user notification asks the user to close the dialog with one of the provided choices.
There is a Technical Documentation
documentation that explains a few insights into the realization of the project. More details can be added when people request it.