У меня есть 3 окна
1 - Главное 2 и 3 модальные.
По умолчанию открывается окно 1 (с авторизацией)
Там вводим логин и пароль, и открывается уже другое окно 2 или 3 в зависимости какой логин или пароль. И при этом 1 окно при открытии другого скрывается.
В окнах 2 и 3 есть Frame, в них есть кнопка код кнопки вот такой
MessageBoxResult result = MessageBox.Show("Вы уверены что хотите выйти из учётной записи?", "Информация",
MessageBoxButton.YesNo,
MessageBoxImage.Question);
foreach (Window window in App.Current.Windows)
{
if (result == MessageBoxResult.Yes)
{
if (window is AuthorizationWindow)
{
TeacherStart teacher = new TeacherStart(1);
StartSchoolboy schoolboy= new StartSchoolboy(1);
AuthorizationWindow authorization = new AuthorizationWindow();
authorization.Show();
}
}
break;
И он срабатывает только 1 раз.
То есть если мы зашли под пользователем ... и открылось 2 окно, то код будет работать.
И если при этом мы вышли из 2 окна, и вводим логин и пароль и входим в 3 окно, то уже
окно не скрывается с таким же кодом, а только отображается окно 1
public StartSchoolboy(int exit = 0)
{
InitializeComponent();
if(exit == 1)
{
Close();
}
}
public TeacherStart(int exit = 0)
{
InitializeComponent();
if (exit == 1)
{
Close();
}
}
int exit? Почему это int а не bool, может быть больше 1 значение? Думаю нет... А не кажется странным то, что вы открываете окно, чтобы потом его сразу закрыть (если 1)? Я думаю да. А открывать все окна, чтоб оставить одно? – EvgeniyZ May 03 '22 at 11:12Привязкой пользуюсь там где знаю как её использовать. В коде пишу не всё, а только то что через xaml не знаю как сделать.
– Naik May 03 '22 at 11:18что тут не понятного ?- ну вы сами свой код посмотрите и поймите, что увидите? Допустимpublic TeacherStart(int exit = 0)- вы инициализируете класс, передав туда число, если оно 1, то после инициализации (расстановки всех компонентов в XAML) вы его закрываете. Ок, а что закрываете? То, что еще не было открыто? Ведь показ окна, этоShowметод, который вызывается после конструктора (new TeacherStart(1).Show()), вот посмотрите на этот код внимательно, что я дал, послеnewидет конструктор, там сразу закрытие, а после уже показ окна. Ну не кажется, что закрытие тут бесполезно? – EvgeniyZ May 03 '22 at 11:27if (window is AuthorizationWindow), если окно авторизации, то создаем 2 новых окна (но не показываем), затем создаем окно авторизации и показываем его. Уверены в логике?где знаю как...через xaml не знаю как- вот очень большой совет, начните в этом разбираться, а не задавать такие вот вопросы. Не знаете как сделать в XAML, спросите, поможем, но сейчас у вас костыли на костылях, вы используете WPF как WinForms, зачем тогда он вам, если вы не используете его по максимуму? Поизучайте этот ответ. – EvgeniyZ May 03 '22 at 11:32