在执行整个主构造函数之前从弹出窗口读取输入

时间:2013-09-18 00:12:54

标签: c# wpf

我有一个wpf应用程序,其中我有两个wpf窗口。一个是主GUI,另一个是弹出窗口,要求用户在文本框中输入一个数字,然后按一个按钮。

我想知道的是,我能以某种方式调用弹出窗口显示在主窗口构造函数中(这与popup.Show()有关)然后读取输入并等待用户按下按钮继续使用构造函数中的其余代码?

基本上一旦到达popup.Show()行,我希望它等待用户输入一个值并在执行主窗口构造函数中的popup.Show()之后按下其余代码之前的按钮。

3 个答案:

答案 0 :(得分:2)

使用ShowDialog()代替Show()会导致执行暂停,直到弹出窗口关闭。

答案 1 :(得分:0)

使用此:

popup.ShowDialog(); // Execution will halt here until the 'popup' is closed

我个人避免在窗口构造函数中使用自定义代码,我通常将此代码放在Window_Loaded

答案 2 :(得分:0)

这应该可以解决问题,但在弹出窗口关闭之前它不会显示MainWindow。

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    protected override void OnInitialized(EventArgs e)
    {
        var popup = new PopupWindow();
        popup.ShowDialog();

        base.OnInitialized(e);
    }
}

对于Popup

public partial class PopupWindow : Window
{
    public PopupWindow()
    {
        InitializeComponent();
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        Close();
    }
}