Wpf 在注册区域的新窗口上打开棱镜模块
我有一个具有各种模块的应用程序 我已经将我的主shell(xaml)划分为不同的区域,现在我可以在这些区域上加载模块 但我有一个要求,在点击某个按钮时,我必须打开一个新窗口,然后在新窗口上加载一个新模块 我创建了一个新窗口,正在打开该窗口,但该窗口有一个主应用程序的RegionManager无法识别的区域Wpf 在注册区域的新窗口上打开棱镜模块,wpf,prism-4,Wpf,Prism 4,我有一个具有各种模块的应用程序 我已经将我的主shell(xaml)划分为不同的区域,现在我可以在这些区域上加载模块 但我有一个要求,在点击某个按钮时,我必须打开一个新窗口,然后在新窗口上加载一个新模块 我创建了一个新窗口,正在打开该窗口,但该窗口有一个主应用程序的RegionManager无法识别的区域 如何在不在主窗口而是在子窗口的区域加载模块?您可以在以下SkyDrive公用文件夹中找到解决问题的快速示例,即“RegionInChildWindowWithNavigation”: 根
如何在不在主窗口而是在子窗口的区域加载模块?您可以在以下SkyDrive公用文件夹中找到解决问题的快速示例,即“RegionInChildWindowWithNavigation”:
RegionManager
属性有关,该属性导致可以从RegionManager
访问定义的ModalWindowRegion
。下面是上述示例中的ModalDialog
ChildWindow视图构造函数。请注意,它还添加了一个事件处理程序,以便在关闭时正确删除子窗口中的所有视图
[ImportingConstructor]
public ModalDialog(IRegionManager rm)
{
this.rm = rm;
this.SetValue(RegionManager.RegionManagerProperty, rm);
InitializeComponent();
this.Closed += new EventHandler(WindowsView_Closed);
}
void WindowsView_Closed(object sender, EventArgs e)
{
while (rm.Regions["ModalWindowRegion"].Views.Count() > 0)
{
rm.Regions["ModalWindowRegion"].Remove(rm.Regions["ModalWindowRegion"].Views.FirstOrDefault());
}
}
然后,您只需要RequestNavigate()
到指定的区域,该区域在区域管理器的子窗口视图中定义,如下所示:
ModalDialogWindow.Show();
rm.RequestNavigate("ModalWindowRegion", new Uri("HelloWorldView", UriKind.Relative));
此外,您可能会发现以下CodePlex线程很有用:
我希望这有帮助。我不知道你的意思。如果您有一个小的工作示例代码,那就太好了。否则,请从Microsoft查看此示例。RegionInChildwindowWith导航链接不可用:(是否有其他来源?