WPF-Prism Region使用

  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的区域中

 

posted @ 2024-08-29 19:28  卡萨丁·周  阅读(74)  评论(0编辑  收藏  举报