WPF:防止导航服务反向导航

时间:2019-12-18 15:17:48

标签: c# wpf navigation navigationservice

我正在设计一个应用程序以更新设备上的固件,并使用导航服务在页面之间自由移动。但是,我希望这样,一旦您点击了实际的固件更新页面,就不能再前进,只能前进。如果允许向后导航,我们可以对设备进行砌块,并且在完成后,无论如何都回去是没有意义的。

第一次尝试是简单地删除NavigationService.Back()方法,但这仍然允许您使用鼠标/退格键。

第二次尝试来自另一个使用RemoveBackEntry() here的SO问题。这样就删除了最后一个条目,但是,您仍然可以使用鼠标后退按钮,它将使您返回2页而不是一页(因为最后一页已被删除)。

那么一旦到达页面,我们如何防止任何形式的后退导航?看来这应该既简单又普遍,但我找不到任何东西。

1 个答案:

答案 0 :(得分:1)

您可以尝试为此使用Navigating事件

void NavigationService_Navigating(object sender, NavigatingCancelEventArgs e)
{
    if (e.NavigationMode == NavigationMode.Back && ...)
    {
        e.Cancel = true;
    }
}

您可以添加到if子句中,检查Uri中的ContentNavigatingCancelEventArgs,以跳过导航到所需的页面(或使用“页面/框架”中的某些属性)< / p>

您也可以查看MSDN以获得更多详细信息,此article也很有帮助