这似乎将是一个简单的解决方案,但我浪费了太多的时间试图弄清楚这一点。也许我错误地设计我的应用程序(这可能是这种情况),所以请帮助我,如果你有更好的解决办法。

我设计一个企业级的WPF应用程序,看起来很像Outlook与一个Ribbon,而不是一个工具栏。我有很多,当用户点击在RibbonButton被加载到一个帧不同的模块。请记住,他的带被翻过所有模块共用。

所以我有一个带和帧的壳。当用户点击功能区上的按钮,它加载适当的模块(用户控件)到框架中。一切都很好。但是,如果我导航到另一个模块(通过点击另一个RibbonButton),然后单击原始RibbonButton,我现在有同样的模块开放的两个实例...但只有一个框所示...其他模块是在该帧的堆栈。

所以我的问题是,如何我告诉帧,当我浏览到一个不同的模块来关闭用户控件?我已经尝试设置JournalEntry.KeepAlive="False",但仍然没有工作。有什么想法吗?实在是没有太多的代码发布,但我可以这样做,如果它会帮助你。

有帮助吗?

解决方案

如果你从来没有要去“回”到上一个条目打算,你可以使用的 NavigationService.RemoveBackEntry()每次浏览时间来清除历史记录。要做到这一点最简单的方法是处理框架的导航事件

frame.Navigated += frame_Navigated;

void frame_Navigated(object sender, NavigationEventArgs e)
{
    frame.NavigationService.RemoveBackEntry();
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top