コード例 #1
0
        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}");
            }
        }
コード例 #2
0
ファイル: MetroBackstage.cs プロジェクト: jiailiuyan/work
        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);
                }
            }
        }
コード例 #3
0
 public Popup(PopupWindow _window, ViewModelBase _viewModel, PopupBehavior _behavior)
 {
     Window    = _window;
     ViewModel = _viewModel;
     Behavior  = _behavior;
 }
コード例 #4
0
 public void Open <T>(Popup <T> popup, T data, PopupBehavior behavior)
 {
     OpenImpl(popup, data, behavior);
 }
コード例 #5
0
 public void Open(Popup popup, PopupBehavior behavior)
 {
     OpenImpl(popup, null, behavior);
 }