WPF的弹出窗口问题

时间:2010-08-14 07:37:23

标签: c# wpf visual-studio

现在,我有一个安装窗口,它有一个取消按钮 1)暂停故事板 2)弹出我的取消窗口

对于取消窗口,会出现一个“确定”按钮,提示我输入失败窗口。

所以现在我想知道如何跟踪用户何时关闭窗口(X)按钮,这样我就可以关闭取消窗口,从而返回安装窗口并恢复我的故事板。

到目前为止,我已经完成了这个

private void cancel_btn_Click(object sender, RoutedEventArgs e)
{
    Storyboard SB = (Storyboard)FindResource("Install");
    SB.Pause();

    popout_Cancel MyApp = new popout_Cancel();
    MyApp.Show();

    if (MyApp.OK.IsMouseCaptured == false)
    {
        MyApp.Close();
        SB.Resume();
    }
}

1 个答案:

答案 0 :(得分:0)

您可以将窗口显示为模型对话框,并使用DialogResult获取结果。

如果我理解正确,你想知道用户是否按下取消vs是否只是关闭了窗口?我不确定这是否是您的要求,但如果您只想显示确认对话框并获得结果,请按以下步骤操作:

在取消窗口中:

private void CancelWindow_OnOkClickedobject sender, RoutedEventArgs e)
{

     this.Close();
}

private void CancelWindow_OnCancelClickedobject sender, RoutedEventArgs e)
{
     this.DialogResult = true;
     this.Close();
}

然后,当你想要显示这个窗口时:

popout_Cancel MyApp = new popout_Cancel();

bool? result = MyApp.ShowDialog();

如果用户按下取消,则结果将设置为true。如果用户点击X按钮,或按OK,则结果将设置为false。

获得结果后,您可以恢复故事板。所以代码看起来像这样:

Storyboard SB = (Storyboard)FindResource("Install");

SB.Pause();

popout_Cancel MyApp = new popout_Cancel();

bool? result = MyApp.ShowDialog();

if (result == null || result == false)
     SB.Resume();
else
     //they really want to cancel, terminate the app

编辑:ShowDialog()返回Nullable,虽然ShowDialog()显然只返回true或false