2010-12-14 99 views
2

我試圖在WPF應用程序啓動後立即打開模式對話框(使用ShowDialog(this))。我嘗試以下方法,這兩種引發InvalidOperationException,可能是因爲窗口尚未初始化:如何在應用程序初始化後立即打開對話框?

public MainWindow() 
{ 
    InitializeComponent(); 

    ShowMyDialogDammit(); 
} 

和:

public MainWindow() 
{ 
    InitializeComponent(); 
} 

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

我該怎麼辦呢?

回答

3

FrameworkElement.Loaded事件添加一個處理程序(發生在「當元素佈局,呈現並準備好進行交互時」),然後從事件處理程序中打開對話框。
例如:

public MainWindow() 
{ 
    InitializeComponent(); 

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

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

嘗試從您的Windows的Loaded事件做到這一點。

0

試試這個:

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

你不需要MainWindow類的任何地方里面的 「ShowDialog的」 通話。

+0

它打開主窗口後立即顯示單獨的模式對話框。 – thecoop 2010-12-15 15:11:48

+0

啊,好的。我誤解了這個問題。抱歉。 – 2010-12-15 18:26:32

相關問題