Как я могу предотвратить открытие окна WPF, если у меня уже открыто окно? - PullRequest
0 голосов
/ 31 мая 2018

У меня есть открытое окно, и я использую метод .Show (), я хотел бы запретить открытие других окон, если у меня есть открытое окно.что-то еще, кроме ShowDialog ().

1 Ответ

0 голосов
/ 31 мая 2018

Отслеживайте количество открытых окон при их открытии тем или иным способом, например:

public class WindowService
{
    private const int MaxNumberOfOpenWindows = 1;
    private int _currentNumberOfOpenWindows = 0;

    public void OpenWindow()
    {
        if (_currentNumberOfOpenWindows != MaxNumberOfOpenWindows)
        {
            Window window = new Window();
            window.Closed += Window_Closed;
            window.Show();
            _currentNumberOfOpenWindows++;
        }
    }

    private void Window_Closed(object sender, EventArgs e)
    {
        Window window = (Window)sender;
        window.Closed -= Window_Closed;
        _currentNumberOfOpenWindows--;
    }
}
...