Region-区域(默认和新增)适配器
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-区域(默认和新增)适配器的更多相关文章
- Halcon学习之六:获取Image图像中Region区域的特征参数
area_center_gray ( Regions, Image : : : Area, Row, Column ) 计算Image图像中Region区域的面积Area和重心(Row,Colu ...
- ASP.NET MVC 设置区域默认定向
public override void RegisterArea(AreaRegistrationContext context) { context.MapRoute( "m_defau ...
- 自定义控件之Region区域
构造Region 直接构造 public Region(Region region) //复制一个同样的Region变量 public Region(Rect r) public Region(int ...
- Firewalld--01 防火墙安全、基本指令、区域配置
目录 Firewalld防火墙安全.基本指令.区域配置 1. 防火墙安全基本概述 2. 防火墙使用区域管理 3. 防火墙基本指令参数 4.防火墙区域配置策略 Firewalld防火墙安全.基本指令.区 ...
- 【读书笔记《Android游戏编程之从零开始》】15.游戏开发基础(剪切区域)
剪切区域也称为可视区域,是由画布进行设置的:它指的是在画布上设置一块区域,当画布一旦设置了可视区域,那么除此区域外,绘制的任何内容都将看不到:可视区域可以是圆形.矩形等等. 画布提供了三种设置可视区域 ...
- ios 定位 监听是否跨入某个指定的区域
/*****监听用户是否进入和走出 在某个区域*****/ 1 #import "ViewController.h" #import <CoreLocation/CoreLo ...
- iOS 系统二维码扫描(可限制扫描区域)
使用 AVFoundation系统库来进行二维码扫描并且限制扫描二维码的范围.(因为默认的是全屏扫描) -(void)beginCode { //1.摄像头设备 AVCaptureDevice *de ...
- 将子域名请求路由到MVC区域
写了个扩展,分享给需要的朋友. 0x01 使用方法 在mvc区域中的{xxxx}AreaRegistration.cs文件中,如ProjectsAreaRegistration.cs <pre& ...
- ASP.NET MVC 解决区域和全局控制器同名的问题
话不多少 直接上代码 通常我们以为上边的是解决控制同名问题,是解决了一点,但是又出了以下问题,默认请求的不是项目默认的控制器而是该区域的控制器,在我之前开发的项目中,默认指向的是区域下的home控制器 ...
- Halcon算子--区域特征
当我们想要提取Region时,图像处理后,往往存在几个类似的Region,此时,需要根据Region的一些特殊特征,来选择指定的Region. 求Region指定特征值:region_features ...
随机推荐
- 记录--你真的能区分JavaScript的各种导入导出方式吗?
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 前言 我们在无论是在查阅别人的代码,还是在实际项目开发的过程中,肯定都会使用导入导出的功能,有时候我们会搞混这几种方式到底有什么区别,今天 ...
- C# 获取QQ会话聊天信息
利用UIAutomation获取QQ会话聊天信息 AutomationElement window = AutomationElement.FromHandle(get.WindowHwnd); Au ...
- Spring Cloud项目搭建版本选择
1.查看spring cloud的版本 https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4 ...
- KingbaseES 数据库使用Limit子句查询结果返回顺序不一致
一.KingbaseES数据库limit查询子句: 在KingbaseES数据库使用LIMIT子句限制查询结果的行数,从而实现分段显示数据的功能. 使用LIMIT子句在KingbaseES数据库中进行 ...
- KingbaseES V8R6集群运维案例之---sys_hba.conf限制客户端访问数据库
KingbaseES V8R6集群运维案例之---sys_hba.conf限制客户端访问数据库 案例说明: 客户端认证是由一个配置文件(通常名为sys_hba.conf并被存放在数据库集簇目录中)控制 ...
- reinterpret_cast 和 static_cast 的区别
安全性: static_cast 是一个安全的类型转换,它只能转换具有继承关系或密切相关的类型,并且在编译时进行类型检查. reinterpret_cast 是一个不安全的类型转换,它可以将任何类型的 ...
- 【问题解决1】fatal error: X11/XXXX.h: No such file or directory
问题现象 编译鸿蒙代码时,报如下类似的错误: 错误1: 错误2: 解决方法 step 1:安装依赖文件 sudo apt-get install apt-file sudo apt-file upda ...
- IDEA彩虹括号插件Rainbow Brackets
IDEA搜索插件Rainbow Brackets 安装后重启IDEA 效果如图:不同层级的括号会变成不同的颜色,便于区分. 光标定位到前一个括号后,使用快捷键ALT+鼠标右键可以只查看当前括号中的内容 ...
- HTTP与WebSocket/WebDAV
WebSocket WebDAV
- #启发式合并,LIS,平衡树#洛谷 4577 [FJOI2018]领导集团问题
题目 在一棵树上选择最多的点,使得存在祖先关系的点满足\(w_x\leq w_y\),其中\(x\)是\(y\)的祖先 分析 祖先链上要满足\(LIS\),考虑将子节点的LIS序列合并至节点\(x\) ...