【问题标题】:C# Windows App remove pageC# Windows 应用程序删除页面
【发布时间】:2014-04-05 12:58:47
【问题描述】:

我做了一个简单的 Windows 8 问答游戏。

我有 3 个页面:MainPage、GamePage 和 ScorePage

GamePage 有一个计时器,所以我必须在 30 秒内回答尽可能多的问题。它还有一个返回按钮以防我想放弃,还有一个重试按钮可以重新开始。

问题是每当我点击返回或重试按钮时,新页面会正确显示,但旧的 GamePage 仍然在后台运行,时间到了就会显示 ScorePage

例如,我打开应用程序,开始游戏并单击返回。时间到了,即使我关闭了游戏(或者我是这么认为的),ScorePage 仍然会显示...

那么我怎样才能完全处置该页面实例呢?

第一次尝试做W8 App,之前只用过WinForms,用this.Close();彻底摆脱页面/表单。

打开页面我使用了this.Frame.Navigate(typeof(GamePage), null);this.Frame.Navigate(typeof(ScorePage), new int[] { Correct, Wrong });

【问题讨论】:

    标签: c# windows dispose


    【解决方案1】:

    以下代码从堆栈中删除返回条目

     if (NavigationService.CanGoBack)
        {
            while (NavigationService.RemoveBackEntry() != null)
            {
                NavigationService.RemoveBackEntry();
            }
        }
    

    你可以这样关闭应用

    Application.Current.Terminate();
    

    【讨论】:

    • 由于某种原因它找不到 NavigationService,我不知道为什么...我也尝试了其他方法,例如 while (this.Frame.CanGoBack) this.Frame.BackStack.RemoveAt(this.Frame.BackStack.Count - 1);,但仍然没有成功
    猜你喜欢
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    • 2015-01-10
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多