Как скрыть родительское окно, которое в панели задач Windows и показать только окна, которые вызываются с помощью ShowDialog () - PullRequest
0 голосов
/ 19 апреля 2019

Я использую заставку с шириной, высотой и т. Д. В качестве границ 0. Это окно содержит проверку подтверждения пользователя. При успешной проверке он вызывает MainWindow.xaml с событием ShowDialog (), а с другой стороны, если проверка не удалась, он показывает LoginWindow.xaml с использованием того же события.

LoginWindow содержит адрес электронной почты, пароль, кнопку входа Главное окно содержит кнопку выхода из системы

ВКЛ. При нажатии кнопки входа в систему раскладка заставки обновляется и проверяется на наличие пользовательских данных, которые содержат действительную информацию, затем открывает MainWindow

ВКЛ. При нажатии кнопки выхода из системы в MainWindow, пользовательские данные обнуляются, снова обновляется макет заставки и проверяется пользовательская информация, которая теперь является нулевой. Так что отображается окно входа в систему

Проблема в панели задач, которая показывает прозрачный экран-заставку при наведении иконки приложения, но не текущее активное окно, которое вызывается с помощью события ShowDialog () из файла splashscreen.xaml.

Как скрыть прозрачный экран-заставку и отображать только текущее активное окно ??

Ниже приведен метод в файле SplashScreen.xaml на обновленном макете

SplashScreen.cs

private async void SplashScreen_LayoutUpdated(object sender, System.EventArgs e)
        {           
            this.IsVisible = false;
            isShowingDialog = true;
            while (true)
            {
                var user = DBUtil.GetLoggedInAccount();

///////if user variable is null then loginwindow is displayed///////

                if (user == null || user.EncPwd == null)
                {
                    var window = new LoginWindow();
                    if (await window.ShowDialog<bool>())
                    {
                        break;
                    }
                }
                else
                {
                    var window = new MainWindow();
///////On logout button press in mainwindow ///////
                    if (await window.ShowDialog<bool>())
                    {
                        break;
                    }
                }               
            }
            this.Close();
        }
...