/// <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(); }); }