我的编程空间,编程开发者的网络收藏夹
学习永远不晚

WPF创建Prism应用程序

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

WPF创建Prism应用程序

创建Prism应用程序

1.第一步

首先, 创建一个基于.NetFramework 或.NetCore的WPF应用程序。如下所示:

2.第二步

为当前应用程序添加NuGet源, 打开NuGet管理器,安装Prism.DryIoc, 如下所示:

说明:

本文将以DryIoc容器为主讲解本系列的所有内容。

实际上, 在Prism7.2版本中, 已经引入了一些围绕IOC抽象的API更改。这最终将使得在选择容器之间切换更加容易,因为 API 在如何注册服务和视图方面完全相同。

您仍然可以访问容器,在 Autofac 容器构建器的情况下,通过扩展方法,以便您可以完成更复杂的注册。

// Prism 6.X way of Registering Services
protected override void RegisterTypes()
{
    // Container Specific Registrations

    // Autofac
    Builder.RegisterType<DebugLogger>().As<ILoggerFacade>().SingleInstance();

    // DryIoc
    Container.Register<ILoggerFacade, DebugLogger>(reuse: Reuse.Singleton,
                                                   ifAlreadyRegistered: IfAlreadyRegistered.Replace);

    // Ninject
    Container.Bind<ILoggerFacade>().To<DebugLogger>().InSingletonScope();

    // Unity
    Container.RegisterType<ILoggerFacade, MCAnalyticsLogger>(new ContainerControlledLifetimeManager());
}

// Unified API in Prism 7
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
    containerRegistry.RegisterSingleton<ILoggerFacade, DebugLogger>();
}

在Prism提供的VusualStudio Template Pack当中, 默认支持选择两种类型的容器项目:

1.DryIoc: GitHub地址

2.Unity: GitHub地址

3.第三步

修改App.xaml文件,添加prism命名空间, 继承由Application->PrismApplication, 如下所示:

打开App.xaml.cs文件, 继承由Application->PrismApplication, 如下所示:

注: 此时,继承于PrismApplication类, 需要实现其中的两个抽象方法。 CreateShell 与 RegisterTypes

Prism的初始化过程

在上面过程中, 我们已经将普通的WPF应用程序修改为PrismApplication, 此时, 再来了解一下Prism的整个框架的初始化过程, 如下所示:

到目前为止, 我们并不关心内部的运行逻辑及初始化过程, 从上面的图中, 可以大致了解, Prism在初始化过程中,

除了构建自身的容器、服务、适配器及一些区域行为后, 便开始创建应用程序的首页(Shell)以及加载模块, 最终呈现。

注: 关于涉及到的服务、注册类型、适配器、区域等概念, 再后面会陆续讲解。

了解了上面的初始化流程之后, 我们有了初步的概念, 再次回到第三步当中,App.xaml.cs文件。

在这里, 我们实现了其中的两个抽象方法:

1.CreateShell

该方法返回了一个Window类型的窗口, 其实就是返回应用程序的主窗口。

2.RegisterTypes

该方法用于在Prism初始化过程中, 我们定义自身需要的一些注册类型, 以便于在Prism中可以使用。

创建Shell示例

现在, 创建一个ShellWindow, 并且实现CreateShell将SheloWindow实例返回, 如下所示:

注:Container 是基类当中的一个容器属性,可用于解析对象的依赖项注入容器

启动之后, 我们可以ShellWindow创建定义的内容,并且呈现。

创建Prism的快速方法

1.首先, 打开VisualStudio的扩展, 安装Prism Template Pack包。

Prism Template Pack提供了什么?

1.Blank Project (空白示例项目)
2.Module Project (模块示例项目)
3.代码片段(用户快速创建属性,命令)

  • 3.1.propp – property (depends on BindableBase)
  • 3.2.cmd - DelegateCommand
  • 3.3.cmdg – DelegateCommand

2.安装完成之后, 再次打开VisualStudio, 将会发生,Prism Template Pack提供了多种项目模板, 用于快速构建基于Prism的应用程序, 如下所示:

注:同时,Prism提供了基于Xamarin的项目模板, 因为Prism是一个基于多个平台的框架, 详细见: Prism框架介绍

结语

本章节, 主要介绍了如何创建一个基于Prism的WPF项目, 以及其它方式快速创建基于Prism的项目模板。

到此这篇关于WPF创建Prism应用程序的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

WPF创建Prism应用程序

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android应用程序的创建

创建和配置新的Android工程选择File->New->Android Project命令,将工程项目名称命名为MyFirstAndroidApp。由于需要新建一个新的工程在contents中勾选Create New Project in
2022-06-06

怎么创建J2EE应用程序

今天小编给大家分享一下怎么创建J2EE应用程序的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。例子应用程序包含三个J2EE组件
2023-06-03

wpf应用程序如何调用webapi

要在WPF应用程序中调用Web API,可以按照以下步骤进行操作:1. 首先,确保你的WPF应用程序与Web API项目在同一解决方案中,或者至少在同一网络中可以访问到Web API。2. 在WPF应用程序的代码中,使用HttpClient
2023-09-16

WCF如何创建简单应用程序

这篇文章主要介绍WCF如何创建简单应用程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!什么是WCF?WCF, 英文全称(windows Communication Foundation) , 即为windows通讯
2023-06-28

怎么创建ASP.NET Core Web应用程序

本文小编为大家详细介绍“怎么创建ASP.NET Core Web应用程序”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么创建ASP.NET Core Web应用程序”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧
2023-06-29

如何创建一个Flex应用程序

这篇文章主要介绍如何创建一个Flex应用程序,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Flex基础Flex是基于组件来进行开发的,为了更有效率地设计和开发Flex应用程序,你应该熟悉这些开发模式以及操作步骤。创建
2023-06-17

怎么创建J2EE应用程序客户端

本篇内容介绍了“怎么创建J2EE应用程序客户端”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!J2EE应用程序客户端由JavaTM语言编写,在
2023-06-03

C#Windows应用程序开发创建窗体

本篇内容主要讲解“C#Windows应用程序开发创建窗体”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#Windows应用程序开发创建窗体”吧!C#Windows应用程序开发之创建窗体的前言:
2023-06-18

使用Django怎么创建一个应用程序

使用Django怎么创建一个应用程序?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、要在Django项目中创建基本应用,您需要转到包含manage.py的目录,然后从此处
2023-06-14

Ubuntu怎么使用SQLServer创建Go应用程序

本文小编为大家详细介绍“Ubuntu怎么使用SQLServer创建Go应用程序”,内容详细,步骤清晰,细节处理妥当,希望这篇“Ubuntu怎么使用SQLServer创建Go应用程序”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来
2023-07-06

在 Java 应用程序中创建图像(转)

您不必从文件中读取所有的图像 ? 您可以创建自己的图像。要创建自己的图像,最灵活的方法是用一个 BufferedImage 对象,它是 Image 类的一个子类,它把图像数据存储在一个可以被访问的缓冲区中。它还支持各种存储像素数据的方法:使
2023-06-03

如何使用.NET Core创建exe应用程序

今天小编给大家分享一下如何使用.NET Core创建exe应用程序的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。.net c
2023-07-02

C#中怎么创建一个Web应用程序

这期内容当中小编将会给大家带来有关C#中怎么创建一个Web应用程序,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C#创建Web应用程序项目在本节中,创建表示应用程序的用户界面的 Visual C# 或 V
2023-06-17

C#Windows应用程序开发创建工具条

本篇内容介绍了“C#Windows应用程序开发创建工具条”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C#Windows应用程序开发之创建工
2023-06-18

创建DCOM客户端服务器应用程序

要创建DCOM(Distributed Component Object Model)客户端服务器应用程序,需要按照以下步骤进行操作:1. 创建COM组件:首先,您需要创建一个COM组件,这是服务器端应用程序的核心部分。COM组件是一种可重
2023-09-14

创建vb应用程序的步骤是什么

创建VB应用程序的步骤如下:1. 确定应用程序的目标和需求,明确你想要开发的应用程序的功能和用途。2. 安装VB开发环境,如Visual Studio等。3. 打开VB开发环境,创建新的项目。4. 选择你想要开发的应用程序类型,如Windo
2023-09-08

怎么创建一个新的WinForm应用程序

要创建一个新的WinForm应用程序,可以按照以下步骤进行:打开Visual Studio开发环境选择“新建项目”,然后选择“Windows Forms应用程序”模板在弹出的对话框中输入项目名称和保存位置,然后点击“确定”在解决方案资
怎么创建一个新的WinForm应用程序
2024-04-08

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录