A possible approach could be to create a simple overlay in the Shell
of you application to cover its contents completely and that could be
shown / hidden
when needed. Examples of such overlays could be a simple rectangle, an image or a custom
as long as it's on top of all the elements of the
By default this overlay would have its Visibility
property set to
(so that it's not visible and does not interfere with the rest of the application). When you need to show it, you just need to change its
and it should cover then the entire contents of the
, including the regions.
Regarding the logic to do this, you could create a very simple view model from the
which could subscribe to an event via the EventAggregator
. When an operation needs to show or hide the overlay it could publish this event and the view model would change the state of the overlay accordingly. For this,
you can use an interaction request, a binding from the Visibility
property to a property in the view model through a boolean-to-visibilty value converter, etc.
I hope you find this useful,