This project has moved and is read-only. For the latest updates, please go here.

Technical Documentation

Here is a simplified overview on the core classes that do the main work in this project:


The MsgBox.Msg class has about 23 different Show(...) methods to implement different types of message boxes on virtually all kinds of parameter permutations. These method combinations and permutations are broken down into about 14 methods in the IMsgBoxService service interface.

The MsgBoxViewModel constructor does the main job of constructing the required state and implementing the logic to keep track of the user interaction when he interacts with the GUI (MsgBoxDialog, ModernDialog) which, in tern, is really an interaction with the bound viewmodel and its logic.

The user notification for the Forced Choice feature (see Sample 16 in MsgBox Demo) is implemented with the MsgBoxViewModel.ShowNotificationMessage event. A message box view subscribes to this event and converts it upon reception into a UserNotification.ViewModel.NotificationViewModel, which in turn is attached to the datacontext of a UserNotification.View.NotificationWindow.

Enum Parameters

  • MsgBox.MsgBoxButtons is used to define the actual buttons that are shown in the GUI
  • MsgBox.MsgBoxImage is used to determine whether the message box should contain an image and what it should indicate (all images can be restyled via ResourceDictionary - see MsgBox.Converter.ImageEnumToImageConverter for more details.
  • MsgBox.MsgBoxResult is used to determine the result of a user interaction. E.g. whether the user clicked OK or Cancel or neither.
  • MsgBox.MsgBoxStyle is used to setup whether a message box should be shown in a generic styled chrome or using the modern (MUI based) look and feel.



Last edited Jun 4, 2015 at 12:39 AM by dirkster, version 10