Region:
区域,我的理解,就是窗体上的一部分地方,不是整个窗体。所以区域里都是用户控件UserControl,就是为了解决在窗体上显示一个自定义的公用的控件的。
共两种用法:
1、原始的方法(不借助prism的依赖注入),用IRegionManager接口,来完成区域的注册和设置。
注册代码如下:
manager.RegisterViewWithRegion("HeaderRegion", typeof(Header));
manager.RegisterViewWithRegion("LeftRegion", typeof(MainLeft));
manager.RegisterViewWithRegion("MainRegion", typeof(MainRight));
上面的Header、MainLeft、MainRight是三个UserControl,这里先把他注册并命名,供设置用
设置代码:
RegionManager.SetRegionName(HeaderCtrl, "HeaderRegion");
RegionManager.SetRegionName(MainLeftCtrl, "LeftRegion");
RegionManager.SetRegionName(MainRightCtrl, "MainRegion");
依据上面的区域名称,把他们设置到要显示的控件上。HeaderCtrl是控件的名称。如图:
上图中prism:RegionManager.RegionName="LeftRegion”,这个也是设置要显示区域的,等同于上面的SetRegionName方法。还有图上的ContentRegion是第2种方法用到的,这里不用管。
2、借助prism的依赖注入,来完成区域Region的注册和设置。
1)、首先需要在app文件下的RegisterTypes方法中,将需要导航的三个(Header、MainLeft、MainRight)用户控件注册上,代码如下:
containerRegistry.RegisterForNavigation<Header>("H");
containerRegistry.RegisterForNavigation<MainLeft>();
containerRegistry.RegisterForNavigation<MainRight>();
第一个我加了个重命名,可以不加。然后在需要显示的地方加下面代码,如下两张图
把MainLeft控件加到名为ContentRegion的区域中