#c# #wpf #xaml
#c# #wpf #xaml
Вопрос:
Я делаю проект в школе и столкнулся с небольшой проблемой, которую я не могу решить. У меня есть несколько классов на C # и создание каркасов WPF для них.
Как мне заставить скрытое окно из другого класса появляться при нажатии кнопки X в новом окне?
private void Window_Closing(object sender, CancelEventArgs e)
{
MainWindow mainWindow = new MainWindow();
mainWindow.ShowDialog();
mainWindow.Visibility = Visibility.Visible;
}
Это в моем классе, где я закрываю окно, а это из класса, в котором я скрываю свое окно и открываю другое
private void Button_Administrator_Click(object sender, RoutedEventArgs e) //Åbner Admindelen
{
this.Visibility = Visibility.Collapsed;
AdminMainMenuWindow adminMainMenuWindow = new AdminMainMenuWindow();
adminMainMenuWindow.Show();
}
Ответ №1:
Вы должны передать экземпляр окна, которое вы привязываете, в качестве параметра конструктора в новое окно, которое вы показываете:
MainWindow
private void Button_Administrator_Click(object sender, RoutedEventArgs e) {
this.Visibility = Visibility.Collapsed;
AdminMainMenuWindow adminMainMenuWindow = new AdminMainMenuWindow(this);
adminMainMenuWindow.Show();
}
AdminMainMenuWindow Административное меню
public partial class AdminMainMenuWindow: Window {
Window mainWindow;
public AdminMainMenuWindow(Window mainWindow) {
this.mainWindow = mainWindow;
InitializeComponent();
Closing = Window_Closing;
}
private void Window_Closing(object sender, CancelEventArgs e) {
mainWindow.Visibility = Visibility.Visible;
}
}
Ваш код не работает, потому что вы меняете видимость нового экземпляра MainWindow вместо изменения видимости существующего.
Комментарии:
1. Большое спасибо за ваш ответ! Это помогло мне продолжить мой проект!