我有一个 wpf 应用程序,其中有两个 wpf 窗口。一个是主 GUI,另一个是弹出窗口,要求用户在文本框中输入数字,然后按下按钮。
我想知道的是我能否以某种方式调用弹出窗口以显示在主窗口构造函数中(这就是我在 popup.Show() 中所拥有的)然后读取输入并等到用户按下按钮继续构造函数中的其余代码?
基本上,一旦它到达 popup.Show() 行,我希望它等待用户输入一个值并在执行主窗口构造函数中的 popup.Show() 之后的其余代码之前按下按钮。
使用ShowDialog()
而不是Show()
将导致执行暂停,直到弹出窗口关闭。
用这个:
popup.ShowDialog(); // Execution will halt here until the 'popup' is closed
我个人避免在窗口构造函数中使用自定义代码,我通常将此代码放在 Window_Loaded
这应该可以解决问题,但在弹出窗口关闭之前它不会显示 MainWindow。
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();
}
}