private void OpenImpl(PopupBase popup, object data, PopupBehavior behavior) { switch (behavior) { case PopupBehavior.Default: { _queue.Enqueue(popup); _queueData.Enqueue(data); if (_openPopups.Count == 0) { ProcessQueue(); } return; } case PopupBehavior.OpenOnTop: OpenPopup(popup, data); return; default: throw new Exception($"Unable to process behavior: {behavior}"); } }
private void ApplyCloseOnClickValue() { var metroShell = this.GetVisualParent <MetroShell>(); if (metroShell != null) { var popup = metroShell.Template.FindName("Popup", metroShell) as Popup; if (popup != null) { PopupBehavior.SetCloseOnInternalClick(popup, CloseOnClick); } } }
public Popup(PopupWindow _window, ViewModelBase _viewModel, PopupBehavior _behavior) { Window = _window; ViewModel = _viewModel; Behavior = _behavior; }
public void Open <T>(Popup <T> popup, T data, PopupBehavior behavior) { OpenImpl(popup, data, behavior); }
public void Open(Popup popup, PopupBehavior behavior) { OpenImpl(popup, null, behavior); }