Project Description
This project contains a message box service locator implementation implemented in C# and WPF.

Introduction

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.

API Coverage

  • 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).

Theming

  • 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

BasicTerminology.png
DarkMessageBoxSample.png
  • 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.

Localization

  • Message box labels and tool tips are localized and currently available in (more can be added on request):
    • Chinese (simplified)
    • Dutch
    • English
    • French
    • German
    • Hindi
    • Italian
    • Spanish

Hyperlink

  • 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.

Display of Exceptions

  • 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

Escape Key

  • 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, No, 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.

Forced Choice

  • 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.

Technical Documentation

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.

Last edited Sep 19 at 9:40 PM by dirkster, version 23