Exemplo n.º 1
0
        public virtual IDisposable ShowDialog()
        {
            var      disabled  = s_instances.Where(x => x != this && x.IsEnabled).ToList();
            TopLevel activated = null;

            foreach (var window in disabled)
            {
                if (window._owner.IsActive)
                {
                    activated = window._owner;
                }

                window.IsEnabled = false;
            }

            Show();

            return(Disposable.Create(() =>
            {
                foreach (var window in disabled)
                {
                    window.IsEnabled = true;
                }

                if (activated != null)
                {
                    activated.Activate();
                }
            }));
        }