Prism内置了几个区域适配器

ContentControlRegionAdapter

ItemsControlRegionAdapter

SelectorRegionAdapter

  • ComboBox

  • ListBox

  • Ribbon

  • TabControl

所以我们可以在ContentControl当中定义区域,

实际可以在任何元素上定义区域

如果定义的范围不再官方提供的默认适配器当中,则会引发异常。

自定义StackPanel区域适配器

一:新建一个类:StackPanelRegionAdapter

 1 namespace BlankApp1.Views.StackPanel_Prism
2 {
3 //1、继承类;RegionAdapterBase<>
4 public class StackPanelRegionAdapter : RegionAdapterBase<StackPanel>
5 {
6 //2、生成构造函数
7 public StackPanelRegionAdapter(IRegionBehaviorFactory regionBehaviorFactory) : base(regionBehaviorFactory)
8 {
9 }
10 //3、生成实现抽像类
11 protected override void Adapt(IRegion region, StackPanel regionTarget)
12 {
13 //代码意思
14 //动态设置他内容的一个代码区域
15 //1、检测这个区域的视图动态变化
16 region.Views.CollectionChanged += (s, e) =>
17 {
18 //判断他现在的行为是增加还是删除
19 //如果是增加行为
20 if (e.Action == System.Collections.Specialized.NotifyCollectionChangedAction.Add)
21 {
22 //循环他的数组,获取所有控件
23 foreach (FrameworkElement item in e.NewItems)
24 {
25 regionTarget.Children.Add(item);
26 }
27
28 }
29
30 };
31 }
32
33 protected override IRegion CreateRegion()
34 {
35 //代码意思
36 //创建一个名为CreateRegionr的Region区域
37 //直接返回一个新的Region区域就可以了
38 return new Region();
39
40 }
41 }
42 }

二:View代码中的MainWindows代码

 1         public MainWindow(IRegionManager regionManager)
2 {
3 InitializeComponent();
4
5 //显示一个或循环显示多个
6 for (int a = 0; a < 10; a++)
7 {
8 regionManager.RegisterViewWithRegion("ContentRegion", typeof(ViewB));
9 }
10
11 RegionManager.SetRegionName(Ctr, "ContentRegion");
12
13 }

三、App.xaml.cs

//4、初始化
protected override void ConfigureRegionAdapterMappings(RegionAdapterMappings regionAdapterMappings)
{
base.ConfigureRegionAdapterMappings(regionAdapterMappings);
regionAdapterMappings.RegisterMapping(typeof(StackPanel), Container.Resolve<StackPanelRegionAdapter>());
}

        protected override Window CreateShell()
{
return Container.Resolve<MainWindow>();
} protected override void RegisterTypes(IContainerRegistry containerRegistry)
{ }
//4、初始化
protected override void ConfigureRegionAdapterMappings(RegionAdapterMappings regionAdapterMappings)
{
base.ConfigureRegionAdapterMappings(regionAdapterMappings);
regionAdapterMappings.RegisterMapping(typeof(StackPanel), Container.Resolve<StackPanelRegionAdapter>());
}

.

Region-区域(默认和新增)适配器的更多相关文章

  1. Halcon学习之六:获取Image图像中Region区域的特征参数

    area_center_gray ( Regions, Image : : : Area, Row, Column )    计算Image图像中Region区域的面积Area和重心(Row,Colu ...

  2. ASP.NET MVC 设置区域默认定向

    public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "m_defau ...

  3. 自定义控件之Region区域

    构造Region 直接构造 public Region(Region region) //复制一个同样的Region变量 public Region(Rect r) public Region(int ...

  4. Firewalld--01 防火墙安全、基本指令、区域配置

    目录 Firewalld防火墙安全.基本指令.区域配置 1. 防火墙安全基本概述 2. 防火墙使用区域管理 3. 防火墙基本指令参数 4.防火墙区域配置策略 Firewalld防火墙安全.基本指令.区 ...

  5. 【读书笔记《Android游戏编程之从零开始》】15.游戏开发基础(剪切区域)

    剪切区域也称为可视区域,是由画布进行设置的:它指的是在画布上设置一块区域,当画布一旦设置了可视区域,那么除此区域外,绘制的任何内容都将看不到:可视区域可以是圆形.矩形等等. 画布提供了三种设置可视区域 ...

  6. ios 定位 监听是否跨入某个指定的区域

    /*****监听用户是否进入和走出 在某个区域*****/ 1 #import "ViewController.h" #import <CoreLocation/CoreLo ...

  7. iOS 系统二维码扫描(可限制扫描区域)

    使用 AVFoundation系统库来进行二维码扫描并且限制扫描二维码的范围.(因为默认的是全屏扫描) -(void)beginCode { //1.摄像头设备 AVCaptureDevice *de ...

  8. 将子域名请求路由到MVC区域

    写了个扩展,分享给需要的朋友. 0x01 使用方法 在mvc区域中的{xxxx}AreaRegistration.cs文件中,如ProjectsAreaRegistration.cs <pre& ...

  9. ASP.NET MVC 解决区域和全局控制器同名的问题

    话不多少 直接上代码 通常我们以为上边的是解决控制同名问题,是解决了一点,但是又出了以下问题,默认请求的不是项目默认的控制器而是该区域的控制器,在我之前开发的项目中,默认指向的是区域下的home控制器 ...

  10. Halcon算子--区域特征

    当我们想要提取Region时,图像处理后,往往存在几个类似的Region,此时,需要根据Region的一些特殊特征,来选择指定的Region. 求Region指定特征值:region_features ...

随机推荐

  1. Locust如何实现负载测试?

    一.场景要求 我们在使用locust时,有时候默认的场景无法满足我们的要求时,这时后我们需要自定义场景 比如我们要设置每一段时间启动10个用户运行,执行60s后再一次启动10个用户,总共运行10分钟, ...

  2. 记录--对于$off,Exclude 和 Extract的一点理解

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 一.typescript 高阶类型 Exclude 和 Extract Exclude<T, U> TypeScript 2. ...

  3. 记录--前端项目中运行 npm run xxx 的时候发生了什么?

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 npm 是 node 捆绑的依赖管理器,常用程度可想而知.那么你每天都在 npm/yarn run 的命令到底是如何运行项目的呢? 前端项 ...

  4. Linux安装Oracle12C及一些参考

    目录 安装 系统配置 安装前装备 安装依赖包 创建用户和组 修改内核参数 修改系统资源限制 创建安装目录及设置权限 设置oracle环境变量 安装Oracle 一些参考 compat-libstdc+ ...

  5. SpaceDesk怎么连接平板/PC(提高生产力,扩展副屏)

    1.下载安装 分为安卓端和PC端,两个设备都需要安装对应的软件. SpaceDesk官网 https://link.zhihu.com/?target=http%3A//spacedesk.net/ ...

  6. 测试开发之前端篇-CSS层叠式样式表

    CSS是层叠样式表(Cascading Style Sheets)的缩写,用于描述如何在屏幕.纸张或其他媒体上显示HTML元素,包括了定义网页及其元素的布局.风格.大小.位置和颜色等属性. CSS的语 ...

  7. #dp,高精度#洛谷 4295 [SCOI2003]严格N元树

    题目 求有多少棵严格 \(n\) 叉树深度为 \(k\) 分析 考虑往下放子孙挺难维护的,考虑在上面换新的根. 设 \(dp[i]\) 表示深度不超过 \(i\) 的方案数,那么 \(dp[i]=dp ...

  8. #启发式合并,LIS,平衡树#洛谷 4577 [FJOI2018]领导集团问题

    题目 在一棵树上选择最多的点,使得存在祖先关系的点满足\(w_x\leq w_y\),其中\(x\)是\(y\)的祖先 分析 祖先链上要满足\(LIS\),考虑将子节点的LIS序列合并至节点\(x\) ...

  9. 使用Python插入100万条数据到MySQL数据库并将数据逐步写出到多个Excel

    Python插入100万条数据到MySQL数据库 步骤一:导入所需模块和库 首先,我们需要导入 MySQL 连接器模块和 Faker 模块.MySQL 连接器模块用于连接到 MySQL 数据库,而 F ...

  10. 第一视角看方法调用时的jvm

    关于比较学术的jvm每个内存区域我之前都写过,就不重复赘述了,这里附上链接:https://www.cnblogs.com/gmt-hao/p/13603534.html, https://www.c ...