Я создаю проект WPF на основе C#. Во время работы над моим проектом я столкнулся с некоторыми проблемами в том, как создать одно окно экземпляра (например, если я хочу открыть окно X, его нельзя открыть снова, если он не закрыт). Я нашел много статей в Интернете, но им показалось, что это очень много работы, что было проще просто отключить кнопку, когда окно открыто и включить ее, когда окно закрыто.C# WPF Создание окна
С другой стороны, я думал об альтернативном решении, которое сработало, но я хочу посмотреть, будет ли он тяжелым в моей системе, когда будет создано много окон.
Решение показано ниже.
public partial class MainWindow : Window
{
Window1 wndw = new Window1();
public MainWindow()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if (!wndw.IsActive)
wndw.Show();
}
}
}
Как вы можете видеть, я создал окно в самом начале, и когда кнопку, чтобы открыть ее щелкнул, она проверяет, если он активен или не показывать.
Если я следую последнему методу, будут ли загружены все окна при создании MainWindow или будут ли компоненты загружаться только при запуске события window1.show()?
Спасибо за вашу поддержку
Дорогой, кнопка расположена в главном окне, которое отображается , Когда он будет нажат, откроется новое окно, называемое здесь wndw типа Window1. Моя проблема в том, что если я использую wndw.show(), я могу вернуться к главному окну и снова нажать кнопку, которая откроет еще один новый wndw типа Window1 – Nassif
Umm, обычно вы просто перегружаете событие Close и скрываете окно вместо того, чтобы разрешить его закрытие. –
Я добавил глобальный логический параметр на вкладке настроек свойств, который будет истинным, если окно открыто. Если этот параметр верен, окно не открывается. В событии закрытия окна i устанавливается значение false. Единственным недостатком является то, что для каждого отдельного окна мне нужно создать параметр. – Nassif