应用程序初始化后如何打开对话框?

时间:2010-12-14 17:37:23

标签: .net wpf startup

我正在尝试在WPF应用程序启动后立即打开模式对话框(使用ShowDialog(this))。我尝试了以下方法,两者都抛出一个InvalidOperationException,大概是因为窗口尚未初始化:

public MainWindow()
{
    InitializeComponent();

    ShowMyDialogDammit();
}

public MainWindow()
{
    InitializeComponent();
}

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

我该怎么做?

3 个答案:

答案 0 :(得分:3)

FrameworkElement.Loaded事件添加一个处理程序(当元素布局,渲染并准备好进行交互时发生),然后从事件处理程序中打开对话框。
例如:

public MainWindow()
{
    InitializeComponent();

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

private void Loaded(object sender, RoutedEventArgs e)
{
    ShowMyDialogDammit();
}

答案 1 :(得分:1)

尝试从Windows的Loaded事件中执行此操作。

答案 2 :(得分:0)

试试这个:

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

您不需要在MainWindow类中的任何地方进行“ShowDialog”调用。

相关问题