Xamarin Shell is awesome! But, nothing is perfect. Sometimes you want to restrict the user from accessing shell controls. In my case I have a long-running process that must either timeout or finish before the user can change the page.
Here is how I dealt with the problem in my Xamarin application.