首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除表单的NavigationService?

如何删除表单的NavigationService?
EN

Stack Overflow用户
提问于 2015-05-16 23:00:30
回答 2查看 429关注 0票数 0

我已经创建了一个只有几页的框架。框架有自己的日志:

代码语言:javascript
复制
JournalOwnership="OwnsJournal"

当我传递2个页面时,我想清除frame NavigationService

代码语言:javascript
复制
Frame parent_frame = (Frame)Application.Current.MainWindow.FindName("content_frame");

JournalEntry remove = parent_frame.RemoveBackEntry();

while (parent_frame.NavigationService.CanGoBack) {
    parent_frame.NavigationService.RemoveBackEntry();
    MessageBox.Show("Remove");
}

但在清理完NavigationService之后,我可以返回。

EN

回答 2

Stack Overflow用户

发布于 2015-05-16 23:36:42

要做到这一点,最简单的方法是处理框架导航事件:

frame.Navigated += frame_Navigated;

代码语言:javascript
复制
void frame_Navigated(object sender, NavigationEventArgs e)
{
    frame.NavigationService.RemoveBackEntry();
}
票数 1
EN

Stack Overflow用户

发布于 2015-05-17 00:29:32

我已经删除了NavigationService.BackStack中所有可能的页面,并在删除最后一页时添加了事件。

代码语言:javascript
复制
Frame root = (Frame)Application.Current.MainWindow.FindName("content_frame");
int i = 0;

while (root.NavigationService.CanGoBack) {
    i++;
    root.NavigationService.RemoveBackEntry();
}
root.NavigationService.RemoveBackEntry();
MessageBox.Show("Deleted - " + i);


NavigatedEventHandler navigated_handle = null;
navigated_handle = (o, e) => {
    ((Frame)o).RemoveBackEntry();
    MessageBox.Show("Do and remove itself!");
    root.Navigated -= navigated_handle;
};
root.Navigated += navigated_handle;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30277177

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档