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

本文关键字:窗口 输入 读取 执行 构造函数 | 更新日期: 2023-09-27 18:31:37

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

想知道的是我是否可以以某种方式调用弹出窗口以显示在主窗口构造函数中(我对弹出窗口有这么多。Show()) 然后读取输入并等待用户按下按钮以继续处理构造函数中的其余代码?

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

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

使用 ShowDialog() 而不是 Show() 将导致执行暂停,直到弹出窗口关闭。

使用这个:

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

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

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

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }
    protected override void OnInitialized(EventArgs e)
    {
        var popup = new PopupWindow();
        popup.ShowDialog();
        base.OnInitialized(e);
    }
}

对于弹出窗口

public partial class PopupWindow : Window
{
    public PopupWindow()
    {
        InitializeComponent();
    }
    private void Button_Click(object sender, RoutedEventArgs e)
    {
        Close();
    }
}