WPF-Prism Region使用

news/2024/9/19 9:19:22/文章来源:https://www.cnblogs.com/dachuang/p/18387391

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/789274.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

需求分析的 5 个步骤,可解决 80% 产品问题

本文将详细介绍拆解需求的五个步骤及一个实际案例分析,帮助读者掌握如何从不同角度切入,精确捕捉并满足用户需求。 一、拆解需求的5个步骤&通用分析角度 1. 谁在用 最基础也是最重要的一步——用户分层。因为同一个功能,不同的用户群体的需求是有差异的。 比如,首次话…

深度学习-pytorch-nerual network价格预测-004

# 1.导入相关模块 import torch from torch.utils.data import TensorDataset from torch.utils.data import DataLoader import torch.nn as nn import torch.optim as optim from sklearn.datasets import make_regression from sklearn.model_selection import train_test_s…

财务知识-会计术语

财务知识-会计术语

selenium爬虫2

无头浏览器简介 无头浏览器(Headless Browser)是一种没有图形用户界面的浏览器,它在后台运行,不会显示任何窗口或界面。无头浏览器通常用于自动化任务,如网页抓取、自动化测试和性能监控等。 爬取票房比如我要爬取上图的2008--2024年的热门电影票房排名 from selenium imp…

Zotero设置

实现Zotero数据在不同电脑间的迁移1. 说明Zotero 中文社区 | 百度网盘使用 zotero 仅同步题录信息,使用其他云同步程序同步文献的附件,此处以坚果云为例进行演示。 准备:zotero 和 坚果云 注册账号 zotero 的插件 zotfile (国内汉化版) 坚果云客户端常用插件:zotfile jasmi…

CentOS 7.9 内核从 3.10 升级到 5.4

1.背景介绍: 环境需求:在搭建 Kubernetes (K8S) 环境时,内核版本最好大于 4.4 以支持 K8S 的所有特性。 当前内核版本:CentOS 7.9 的默认内核版本为 3.10.0-1160.el7.x86_64,不满足 K8S 的推荐内核版本要求。 2.查看内核版本及相关包: 使用命令 uname -r 查看当前内核版本…

基于LangChain手工测试用例转Web自动化测试生成工具

在传统编写 Web 自动化测试用例的过程中,基本都是需要测试工程师,根据功能测试用例转换为自动化测试的用例。市面上自动生成 Web 或 App 自动化测试用例的产品无非也都是通过录制的方式,获取操作人的行为操作,从而记录测试用例。整个过程类似于但是通常录制出来的用例可用性…

PbootCMS网站常见错误提示总结

一些初涉相关领域的新朋友在进行 pbootcms 的安装过程中,往往会频繁遭遇一些错误状况。接下来,为您详细罗列 pbootcms 于后台抑或前台所呈现出的各类问题以及相应的解决办法。1、Parse error: syntax error, unexpected :, expecting { in www\core\function\handle.php on l…

PbootCMS未检测到您服务器环境的sqlite3数据库扩展

在进行相关操作时,未能检测到您服务器环境中的 sqlite3 数据库扩展。在 PbootCms 的安装流程当中,“未检测到您服务器环境的 sqlite3 数据库扩展”这一问题的解决办法扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、…

PbootCMS验证码不显示怎么办

扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站、网站修改、网站改版、BUG修复、问题处理、二次开发、PSD转HTML、网站被黑、网站漏洞修复等。专业解决各种疑难杂症,您有任何网站问题都…

PbootCMS您访问路径含有非法字符,防注入系统提醒您请勿尝试非法操作!

您所访问的路径当中包含了非法字符,我们的防注入系统特此提醒您,千万不要尝试进行任何非法操作!扫码添加技术【解决问题】专注中小企业网站建设、网站安全12年。熟悉各种CMS,精通PHP+MYSQL、HTML5、CSS3、Javascript等。承接:企业仿站、网站修改、网站改版、BUG修复、问题…