首页 > 其他分享 >WPF Prism (一):区域导航

WPF Prism (一):区域导航

时间:2024-11-20 13:15:41浏览次数:3  
标签:安装 App 视图 Prism WPF 导航 代码

文章目录


前言

最近使用WPF开发 准备学习一下Prism框架 后面的项目打算去使用Prism框架,现在先学习使用一下他的导航,现在是简单使用,后续会慢慢的进行扩展


一、Prism简介

Prism是用于在WPF、Windows 10 UWP和Xamarin Forms中构建松散耦合、可维护和可测试的XAML应用程序的开源框架。Prism提供了包括MVVM、依赖注入、命令和事件聚合器等设计模式,这些设计模式有助于编写效果良好且可维护的XAML应用程序

二、Prism安装

1.NuGet进行安装


我这里就直接安装了Prism.Unity,由于Prism.Unity依赖于Prism.Wpf,因此安装Prism.Unity后不需要再安装Prism.Wpf和Prism.Core,直接一步到位

2.扩展安装

安装扩展 Prism Template Pack
在这里插入图片描述
安装这个扩展可以直接在创建项目的时候创建Prism框架,暂时先不用。还有一个自动填写属性的功能
在这里插入图片描述

三、区域导航(Navigation)

现在用Prism中的导航 实现下面功能
在这里插入图片描述
点击不同的按钮切换到不同的视图。下面开始进行

修改App.xaml

添加属性 xmlns:prism=“http://prismlibrary.com/”>
将顶级元素Application修改为prism:PrismApplication。
去除启动属性StartupUri="MainWindow.xaml”。
在这里插入图片描述

修改App后台代码

在App后台代码中继承PrismApplication,继承完成之后必须要重写2个方法,CreateShellRegisterTypes
CreateShell:创建主窗口对象
RegisterTypes:进行IOC容器管理类型的注册
(App类型在继承了PrismApplication类后可能会提示错误,需要重新生成一下解决方案)

在这里插入图片描述

项目结构

先看一下项目结构
在这里插入图片描述
这里A视图和B视图为切换视图

进行注册导航

在App后台代码中进行注册导航
在这里插入图片描述

使用导航

在MainWindowViewModel中去使用导航,这就是全部代码了
在这里插入图片描述
在这里插入图片描述

ViewModelLocator视图模型定位器

注意在MainWindowView中的后台代码 是没有写this.DataContext的,这里用到的是

prism:ViewModelLocator.AutoWireViewModel="True"

这个叫做ViewModelLocator用于以标准命名约定的方式将视图的DataContext绑定到ViewModel的实例
具体可以参考这篇文章:Prism视图模型定位器

设置Region容器

通过prism:RegionManager.RegionName在窗体的xaml代码中,将要展示Region内容的容器控件设置区域名称

四、示例代码

https://github.com/yqyq666/Prism1

标签:安装,App,视图,Prism,WPF,导航,代码
From: https://blog.csdn.net/m0_46557714/article/details/143905001

相关文章

  • WPF简单的数据绑定示例
    publicpartialclassindex:INotifyPropertyChanged{publicindex(){InitializeComponent();DataContext=this;}privatestring_userName;publicstringUserName{......
  • Unity新导航系统---NavMeshObstacle组件
    系列文章目录Unity新导航系统—NavMeshObstacle组件文章目录系列文章目录前言NavMeshObstacle组件前言NavMeshObstacle组件:用于在场景中定义动态障碍物,来影响导航主体(NavMeshAgent)的路径选择。这是我的学习笔记,记载的是NavMeshObstacle组件的用法和各......
  • 界面控件DevExpress WPF中文教程:网格视图数据布局的列和卡片字段
    DevExpressWPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中心......
  • C#-WPF 常见类型转换方法(持续更新)
    目录一、普通类型转换1、Convert类2、Parse(转String)3、TryParse(转String)4、ToString(转String)5、int转double 6、自定义类型的显示/隐式转换二、byte[]转ImageSource方法一方法二一、普通类型转换1、Convert类提供了一种安全的方式来执行类型转换,可处理n......
  • WPF ListBox implement autoscroll via behavior extension and SelectedItem
    publicclassListBoxAutoScrollBehavior:Behavior<ListBox>{protectedoverridevoidOnAttached(){AssociatedObject.SelectionChanged+=AssociatedObject_SelectionChanged;base.OnAttached();}privatevoidAs......
  • 将 WPF 嵌入到 MFC 中,无法响应键盘输入
    在将WPF窗口嵌入到MFC窗口中中提到,可以将WPF嵌入到MFC窗口中,但遗留了一个没有发现的问题,WPF界面,无法响应键盘的输入。示例源码已经在https://gitee.com/Jasongrass/DemoPark/tree/master/Code/Embed_WPF_to_MFC/MFCMerge......
  • Unity新导航系统---NavMeshAgent组件&NavMeshLink组件
    系列文章目录Unity新导航系统—NavMeshAgent组件&NavMeshLink组件文章目录系列文章目录前言NavMeshAgent组件NavMeshLink组件前言NavMeshAgent组件:用于控制游戏对象(如角色、AI等)在导航网格(NavMesh)上的移动和路径寻找。NavMeshLink组件:用于创建两个导航......
  • Abp.VNext-显示加载实体导航属性
    方式一:为实体配置默认导航并设置includeDetails属性为true[DependsOn(typeof(AbpEntityFrameworkCoreMySQLModule))]publicclassEntityFrameworkCoreModule:AbpModule{publicoverridevoidConfigureServices(ServiceConfigurationContextcontext){Co......
  • HTML·第八章 利用CSS制作导航栏菜单
    8.1水平顶部导航栏水平顶部导航栏(HorizontalTopNavigationBar)是网页设计中常用的一种导航栏布局,通常位于页面的顶部,以水平的方式排列导航选项。这种布局便于用户快速访问网站的主要部分。常见的设计元素包括菜单项、图标、搜索框、以及用户信息等。一、水平顶部导航栏......
  • 如何在WPF中嵌入其它程序
    在WPF中嵌入其它程序,这里提供两种方案 一、使用WindowsFormHost使用步骤如下1、添加WindowsFormsIntegration和System.Windows.Forms引用  2、在界面上放置WindowsFormHost和System.Windows.Forms.Panel1<Grid>2<WindowsFormsHost>3<winform:Pa......