我有一个wpf应用程序,其中我有两个wpf窗口。一个是主GUI,另一个是弹出窗口,要求用户在文本框中输入一个数字,然后按一个按钮。
我想知道的是,我能以某种方式调用弹出窗口显示在主窗口构造函数中(这与popup.Show()有关)然后读取输入并等待用户按下按钮继续使用构造函数中的其余代码?
基本上一旦到达popup.Show()行,我希望它等待用户输入一个值并在执行主窗口构造函数中的popup.Show()之后按下其余代码之前的按钮。
答案 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();
}
}