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
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
) is implemented with the MsgBoxViewModel.ShowNotificationMessage
event. A message box view subscribes to this event and converts it upon reception into a
, which in turn is attached to the datacontext of a
- 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.