现在,我有一个安装窗口,它有一个取消按钮 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();
}
}
答案 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