Как открыть диалог, как только приложение будет инициализировано? - PullRequest
2 голосов
/ 14 декабря 2010

Я пытаюсь открыть модальное диалоговое окно, как только запустится приложение WPF (используя ShowDialog(this)).Я попробовал следующие методы, оба из которых выдают InvalidOperationException, предположительно, потому что окно еще не было инициализировано:

public MainWindow()
{
    InitializeComponent();

    ShowMyDialogDammit();
}

и:

public MainWindow()
{
    InitializeComponent();
}

protected override void OnInitialized(EventArgs e)
{
    base.OnInitialized(e);
    ShowMyDialogDammit();
}

Как мне это сделать?

Ответы [ 3 ]

3 голосов
/ 14 декабря 2010

Добавьте обработчик для события FrameworkElement.Loaded (которое происходит «когда элемент размечен, визуализирован и готов к взаимодействию»), а затем откройте диалоговое окно из обработчика события.
Например:

public MainWindow()
{
    InitializeComponent();

    // Adding the event handler
    Loaded += new RoutedEventHandler(IsLoaded);
}

private void Loaded(object sender, RoutedEventArgs e)
{
    ShowMyDialogDammit();
}
1 голос
/ 14 декабря 2010

Попробуйте сделать это из события Loaded ваших окон.

0 голосов
/ 14 декабря 2010

Попробуйте это:

var w = new MainWindow();
w.ShowDialog();

Вам нигде не нужен вызов ShowDialog внутри класса MainWindow.

...