/// <summary>
 /// Fired when the overlay is hidden.
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void LoadingOverlay_OnHideComplete(object sender, EventArgs e)
 {
     ui_contentRoot.Children.Remove(m_loadingOverlay);
     lock(this)
     {
         m_loadingOverlay = null;
     }
 }
        /// <summary>
        /// Shows a loading overlay if there isn't one already
        /// </summary>
        private async void ShowFullScreenLoading()
        {
            await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.High, () =>
            {
                // Make sure we don't have one already, if so get out of here.
                lock (this)
                {
                    if (m_loadingOverlay != null)
                    {
                        return;
                    }
                    m_loadingOverlay = new LoadingOverlay();
                }

                m_loadingOverlay.OnHideComplete += LoadingOverlay_OnHideComplete;
                Grid.SetRowSpan(m_loadingOverlay, 3);
                ui_contentRoot.Children.Add(m_loadingOverlay);
                m_loadingOverlay.Show();
            });
        }