Как открыть окно входа (Login Window) при запуске программы?

  • 29 августа 2023 г. 7:57
Ответы на вопрос 1
Для открытия окна входа перед загрузкой основного окна (MainWindow) с использованием фреймворка lepoco/wpfui необходимо выполнить следующие шаги:

1. В XAML-разметке окна MainWindow добавьте `ContentControl`, который будет содержать контент основного окна:

```xaml
<ContentControl x:Name="MainContentControl" />
```

2. В коде окна MainWindow добавьте функцию, которая будет отображать окно входа и вызываться при запуске программы:

```csharp
private void ShowLoginWindow()
{
    var loginWindow = new LoginWindow();

    // Установите владельца окна входа, чтобы окно MainWindow оставалось активным
    loginWindow.Owner = this;

    // Отобразите окно входа как модальное
    if (loginWindow.ShowDialog() == true)
    {
        // Если пользователь успешно вошел, отобразите основное окно
        var mainContent = new MainContent();
        MainContentControl.Content = mainContent;
    }
    else
    {
        // Если пользователь отменил вход, можно закрыть программу
        this.Close();
    }
}
```

3. В методе `OnInitialized` окна MainWindow вызовите функцию `ShowLoginWindow`:

```csharp
protected override void OnInitialized(EventArgs e)
{
    base.OnInitialized(e);

    // Отобразите окно входа перед загрузкой MainWindow
    ShowLoginWindow();
}
```

Теперь, при запуске программы, будет отображаться окно входа (Login Window) перед загрузкой основного окна (MainWindow), и только при успешном входе будет отображен контент основного окна.
Похожие вопросы