Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 在注册区域的新窗口上打开棱镜模块_Wpf_Prism 4 - Fatal编程技术网

Wpf 在注册区域的新窗口上打开棱镜模块

Wpf 在注册区域的新窗口上打开棱镜模块,wpf,prism-4,Wpf,Prism 4,我有一个具有各种模块的应用程序 我已经将我的主shell(xaml)划分为不同的区域,现在我可以在这些区域上加载模块 但我有一个要求,在点击某个按钮时,我必须打开一个新窗口,然后在新窗口上加载一个新模块 我创建了一个新窗口,正在打开该窗口,但该窗口有一个主应用程序的RegionManager无法识别的区域 如何在不在主窗口而是在子窗口的区域加载模块?您可以在以下SkyDrive公用文件夹中找到解决问题的快速示例,即“RegionInChildWindowWithNavigation”: 根

我有一个具有各种模块的应用程序

我已经将我的主shell(xaml)划分为不同的区域,现在我可以在这些区域上加载模块

但我有一个要求,在点击某个按钮时,我必须打开一个新窗口,然后在新窗口上加载一个新模块

我创建了一个新窗口,正在打开该窗口,但该窗口有一个主应用程序的RegionManager无法识别的区域


如何在不在主窗口而是在子窗口的区域加载模块?

您可以在以下SkyDrive公用文件夹中找到解决问题的快速示例,即“RegionInChildWindowWithNavigation”:

根据我的理解,您提到的问题与在ChildWindow视图上设置
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导航链接不可用:(是否有其他来源?