Wpf 使用 Prism 实战开发Day01

news2025/1/18 7:18:10

一.开发环境准备

1. VisualStudio 2022

2. .NET SDK 7.0

3. Prism 版本 8.1.97

以上环境,如有新的版本,可自行选择安装新的版本为主

二.创建Wpf项目 

1.项目的名称:MyToDo

项目名称:这里只是记录学习,所以随便命名都无所谓,只要觉得合理就行

2.打开NuGet,下载Prism 包

注意:下载的包名是Prism.DryIoc。为什么不是Prism.xxx其他包,而是Prism.DryIoc,别问我,我也不知道。我的目的是学会使用就OK.

3.修改App.xaml 入口文件

  1. 引入Prism 命名空间 xmlns:prism="http://prismlibrary.com/"
  2. 修改Application节点标签成 prism:PrismApplication
  3. 后台App.xaml.cs 文件,继承的Application 也改成 PrismApplication
  4. 删除App.xaml 前端页中的 StartupUri="MainWindow.xaml"

修改后的 App.xaml 文件  

<prism:PrismApplication x:Class="MyToDo.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:MyToDo"
             xmlns:prism="http://prismlibrary.com/">
    <Application.Resources>
         
    </Application.Resources>
</prism:PrismApplication>

 不要问,为什么要这样改,我真不知道。每个框架都有自己的约定,按照这个套路来就好了!

     5. 修改App.xaml.cs 文件,必须要实现2个接口。如果不实现编译会报错。(其他接口自行参考官网例程,按需使用,因为我现在也不会)

  • CreateShell 方法,创建启动页,跟App.xaml 的StartupUi是一样的作用,所以需要删掉App启动页,不然启动运行会有2个主窗口。
  • RegisterTypes 方法,用于注入一些服务。例如:数据库服务,其他接口服务等等.具体这个注册怎么个用法,我现在也不懂,在往后学习当中。先了解这2个方法作用。

修改后的 App.xaml.cs 文件

namespace MyToDo
{
    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : PrismApplication
    {
        /// <summary>
        /// 创建启动页面
        /// </summary>
        /// <returns></returns>
        protected override Window CreateShell()
        {
           return Container.Resolve<MainWindow>();
        }
        /// <summary>
        /// 依懒注入的方法
        /// </summary>
        /// <param name="containerRegistry"></param>
        protected override void RegisterTypes(IContainerRegistry containerRegistry)
        {
           
        }
    }
}

 4. 引入MaterialDesignThemes UI组件库 

  1. UI 组件库主要用来美化界面,类似前端开发使用一些UI库
  2. Material Design Themes UI仓库地址   打开WiKi
  •  NuGet 安装

  •  UI组件库安装完成后,在App.xaml 文件中,添加UI库命名空间并且引入UI库的资源文件

UI 库命名空间:

xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"

UI 库资源文件:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <materialDesign:BundledTheme BaseTheme="Light" PrimaryColor="DeepPurple" SecondaryColor="Lime" />
            <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Defaults.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

UI库使用方式,在git hub 仓库wiki都有说明.完成后以上方式后,就能正常使用了。


 三.创建Web API 项目

Web API 项目主要是用于获取数据

1. 添加Web API 项目

 2.选择ASP.NET Core Web API

3.取消HTTPS 选项

主要原因是,开发环境勾选上HTTPS,到时候运行要提示你安装各种证书,因为HTTPS 提供了加密通信和证书验证,并且要手动配置证书啥的,开发环境这么搞就太麻烦了。大概就是这个意思。其他别问,我也不懂,百度大概是这么说的. 

 4.最终项目结构

  • Web Api 设置为启动项,运行起来就是这个效果了


仅供自己学习记录,不做任何教程提供,不喜欢也请别喷我。这个是从b 站看视频学习wpf,就想记录一下。写的水平有限,也并不是写出来误导别人,毕竟你有没有基础我不知道,反正我看的懂就ok,方便我以后用的上时可以回来翻下笔记。仅此而已!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sql-50练习题0-5

sql练习题0-5题 前言数据库表结构介绍学生表课程表成绩表教师表 0-1 查询"01"课程比"02"课程成绩高的学生的信息及课程分数0-2查询"01"课程比"02"课程成绩小的学生的信息及课程分数0-3查询平均成绩大于等于60分的同学的学生编号和学生…

2023年江西省“振兴杯”工业互联网安全技术技能大赛暨全国大赛江西选拔赛 Write UP

文章目录 一、协议分析 - modbus二、协议分析 - 异常的流量三、协议分析 - S7Error四、协议分析 - OmronAttack五、组态编程 - 工程的秘密六、组态编程 - 工程的秘密七、组态编程 - 简单的计算八、组态编程 - 交通灯九、组态编程 - 有趣的转盘十、应急处置 - 登录日志分析十一、…

DevOps与CI/CD的最佳实践

在当今的软件开发领域&#xff0c;DevOps&#xff08;开发与运维的结合&#xff09;和CI/CD&#xff08;持续集成/持续交付&#xff09;已经成为了不可或缺的一部分。它们不仅提高了软件开发的效率&#xff0c;还帮助团队更快地交付高质量的软件。本文将深入探讨DevOps文化和CI…

nodejs+vue+elementui+express外卖数据分析python

在上述需求分析的基础上&#xff0c;通过深入研究&#xff0c;将系统使用人员划分为信息采集编辑、信息维护编辑、信息发布编辑三个角色。 本论文的研究目的是为了给采编者提供一套完善、高效的智能信息收集解决方案&#xff0c;并利用一系列的程序设计与开发&#xff0c;为采…

Linux中shell脚本练习

目录 1.猜数字 2.批量创建用户 3.监控网卡Receive Transmit 数据的变化 4.部署Linux 5.系统性能检测脚本 6.分区脚本 7.数据库脚本 1.猜数字 随机数的生成 使用环境变量RANDOM&#xff0c;范围是0&#xff5e;32767 编写guest.sh&#xff0c;实现以下功能&#xff1…

AS/400简介

AS400 AS400 简介AS/400操作系统演示 AS400 简介 在 AS400 中&#xff0c;AS代表“应用系统”。它是多用户、多任务和非常安全的系统&#xff0c;因此用于需要同时存储和处理敏感数据的行业。它最适合中级行业&#xff0c;因此用于制药行业、银行、商场、医院管理、制造业、分销…

栈队列OJ练习题(C语言版)

目录 一、括号匹配问题 思路&#xff1a; 完整版C语言代码&#xff1a; 讲解&#xff1a; 二、用队列实现栈 思路&#xff1a; 完整版C语言代码&#xff1a; 讲解&#xff1a; 三、用栈实现队列 思路&#xff1a; 完整版C语言代码&#xff1a; 讲解&#xff1a…

【C++】C++入门(下)--内联函数 auto关键字 nullptr

目录 一 内联函数 1 内联函数概念和定义 2 内联函数特性 二 auto关键字 1 auto概念 2 auto 的使用细则 (1) auto与指针和引用结合起来使用 (2) 在同一行定义多个变量 3 auto不能推导的场景 (1) auto不能作为函数的参数 (2) auto不能直接用来声明数组 4 基于范围的fo…

uniapp实现瀑布流

首先我们要先了解什么是瀑布流&#xff1a; 瀑布流&#xff08;Waterfall Flow&#xff09;是一种常见的网页布局方式&#xff0c;也被称为瀑布式布局或砌砖式布局。它通常用于展示图片、博客文章、商品等多个不同大小和高度的元素。 瀑布流布局的特点是每个元素按照从上到下…

椭圆曲线点加的推导公式

一、点加推导过程 1.1 背景 实数域上的椭圆曲线: y^2 =x^3+ax+b 假设P,Q,R三点的坐标分别为:P(x1,y1),Q(x2,y2),R(x3,-y3),我们这里求的是P+Q,即R的镜像点,因此R坐标为(x3,-y3)。 假设通过点P(x1,y1)点的直线方程L(x)可以表达为:y=k(x-x1)+y1 ,其中,k为直线L(x)的…

.NET CORE 3.1 集成JWT鉴权和授权2

JWT&#xff1a;全称是JSON Web Token是目前最流行的跨域身份验证、分布式登录、单点登录等解决方案。 通俗地来讲&#xff0c;JWT是能代表用户身份的令牌&#xff0c;可以使用JWT令牌在api接口中校验用户的身份以确认用户是否有访问api的权限。 授权&#xff1a;这是使用JWT的…

测绘屠夫报表系统V1.0.0-beta

1. 简介 测绘屠夫报表系统&#xff0c;能够根据变形监测数据&#xff1a;水准、平面、轴力、倾斜等数据&#xff0c;生成对应的报表&#xff0c;生成报表如下图。如需进一步了解&#xff0c;可以加QQ&#xff1a;3339745885。视频教程可以在bilibili观看。 2. 软件主界面 3. …

vue3+ts+threejs 1.创建场景

效果 创建画布容器元素 <script setup lang"ts"> ... // 画布容器 const canvasRef ref<HTMLElement>() const canvasSize ref<{ width: number, height: number }>({width: 0, height: 0})// 监控更新画布尺寸 function handleResize(entry: R…

云笔记一网打尽

二、云笔记产品 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 这么多产品如何选择呢&#xff1f; 2.1、选择注重本地留存的产品 可以看到语雀出事后&#xff0c;网上的文章出场率比较高的有Obsidian和思源笔记。为什么呢&#xff1f;因为它们比较注意…

Go学习第十三章——Gin入门与路由

Go web框架——Gin入门与路由 1 Gin框架介绍1.1 基础介绍1.2 安装Gin1.3 快速使用 2 路由2.1 基本路由GET请求POST请求 2.2 路由参数2.3 路由分组基本分组带中间件的分组 2.4 重定向 1 Gin框架介绍 github链接&#xff1a;https://github.com/gin-gonic/gin 中文文档&#xf…

中颖单片机SH367309全套量产PCM,专用动力电池保护板开发资料

方案总体介绍 整套方案硬件部分共2块板子&#xff0c;包括MCU主板&#xff0c;采用SH79F6441-32作为主处理器。MCU主板包括2个版本。PCM动力电池保护板采用SH367309。 软件方案采用Keil51建立的工程&#xff0c;带蓝牙的版本&#xff0c;支持5~16S电池。 硬件方案--MCU主板 MC…

【用户登录】模块之登录认证+鉴权业务逻辑

用户登录——⭐认证功能的流程图&#xff1a; ⭐鉴权流程图&#xff1a; 用户登录功能的Java代码实现 1. 实体类-User orm框架&#xff1a;JPA Table(name "user_tab") Entity Data NoArgsConstructor AllArgsConstructor public class User implements Serializ…

果蔬购物商城管理与推荐系统Python+Django网页界面+协同过滤推荐算法

一、介绍 果蔬购物管理与推荐系统。本系统以Python作为主要开发语言&#xff0c;前端通过HTML、CSS、BootStrap等框架搭建界面&#xff0c;后端使用Django框架作为逻辑处理&#xff0c;通过Ajax实现前后端的数据通信。并基于用户对商品的评分信息&#xff0c;采用协同过滤推荐…

机器学习---使用 TensorFlow 构建神经网络模型预测波士顿房价和鸢尾花数据集分类

1. 预测波士顿房价 1.1 导包 from __future__ import absolute_import from __future__ import division from __future__ import print_functionimport itertoolsimport pandas as pd import tensorflow as tftf.logging.set_verbosity(tf.logging.INFO) 最后一行设置了Ten…

Spring Security获得认证流程解析(示意图)

建议先看完Spring Security总体架构介绍和Spring Security认证架构介绍&#xff0c;然后从FilterChainProxy的doFilterInternal函数开始&#xff0c;配合文章进行debug以理解Spring Security认证源码的执行流程。 在之前的Spring Security认证架构介绍中&#xff0c;我们已经知…