我正在尝试在WPF应用程序启动后立即打开模式对话框(使用ShowDialog(this)
)。我尝试了以下方法,两者都抛出一个InvalidOperationException,大概是因为窗口尚未初始化:
public MainWindow()
{
InitializeComponent();
ShowMyDialogDammit();
}
和
public MainWindow()
{
InitializeComponent();
}
protected override void OnInitialized(EventArgs e)
{
base.OnInitialized(e);
ShowMyDialogDammit();
}
我该怎么做?
答案 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”调用。