private void OnIsBusyChanged() { if (_adorner != null) { _adorner.Dispose(); } if (IsBusy) { _adorner = OverlayAdorner.Overlay(this, _overlay); } }
private void AssociatedElementOnLoaded(object sender, RoutedEventArgs routedEventArgs) { if (associatedElement != null) { var adornerLayer = AdornerLayer.GetAdornerLayer(associatedElement); overlayAdorner = new OverlayAdorner(associatedElement); overlayAdorner.Content = Content; adornerLayer.Add(overlayAdorner); associatedElement.IsVisibleChanged += AdornedElementIsVisibleChanged; IsVisible = associatedElement.IsVisible; } }
private async void ShowOverlay <T>(T element) where T : UIElement, IOverlay, new() { ClearOverlays(); if (overlays == null) { overlays = new List <IOverlay>(); } overlays.Add(element); using (OverlayAdorner <T> .Overlay(overlayRoot, element)) { await element.WaitForClose(); } }