使用基于视图的导航时隐藏 Prism 区域

Hiding a Prism region when using View based Navigation

<DockPanel LastChildFill="True">
    <UserControl prism:RegionManager.RegionName="{x:Static inf:RegionNames.ShellHeaderRegion}" DockPanel.Dock="Top" />
    <UserControl prism:RegionManager.RegionName="{x:Static inf:RegionNames.ShellStatusRegion}" DockPanel.Dock="Bottom" />
    <UserControl prism:RegionManager.RegionName="{x:Static inf:RegionNames.ShellContentRegion}"/>
</DockPanel>

你好,

我正在构建一个包含多个模块的 WPF Prism 应用程序。一些模块使用我定义的所有 3 个区域。 (Header、内容、状态)。其他模块仅使用内容区域。问题是当我使用 IRegionManager.RequestNavigate() 从一个模块导航到另一个模块时,ShellHeaderRegion 和 ShellContentRegion 仍然包含注入的视图。我希望能够停用这些视图,同时在我调用 IRegionNavigationJournal.GoBack() 时保留重新激活这些视图的能力。有没有正确的方法来做到这一点?

经过运行 一些测试和阅读源代码后,我找到了合适的解决方案。 如果你想隐藏一个区域,你需要创建一个空的用户控件。由于它没有内容,因此它不会 width/height 并崩溃。

不幸的是,调用 IRegionNavigationJournal.GoBack() 的唯一方法是从 IRegion,因为在空的 UserControl 上实现 INavigationAware 并没有真正的帮助(除非你添加 UI 可以调用 IRegionNavigationJournal.GoBack())

的元素或事件