internal void AddModal(UIElement newElement, bool showBlurrer) { int childCount = _panel.Children.Count; if (childCount > 1) { UIElement child = PeekChild(); child.IsHitTestVisible = false; } if (childCount <= 2 && showBlurrer) { _blurrer.InvalidateArrange(); Animator.AnimatePropertyFromTo(_blurrer, OpacityProperty, 0, null, BlurrerAnimationDurationMs); _blurrer.Visibility = Visibility.Visible; } _panel.Children.Add(CreateDecorator(newElement)); UpdateModalCount(); }
internal void RemoveModal(UIElement closingElement, bool hideBlurrer) { if (_panel.Children.Count <= 1) { return; } var decorator = PeekChild() as Decorator; if (decorator == null) { return; } var element = decorator.Child; if (!ReferenceEquals(element, closingElement)) { return; } _panel.Children.Remove(decorator); int childCount = _panel.Children.Count; if (childCount > 0) { var child = PeekChild(); child.IsHitTestVisible = true; if (childCount <= 2 && hideBlurrer) { Animator.AnimatePropertyFromTo(_blurrer, OpacityProperty, null, 0, BlurrerAnimationDurationMs, HideBlurrer); } } UpdateModalCount(); }