当前位置: 首页 > news >正文

Wpf 使用 Prism 实战开发Day01

一.开发环境准备

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,方便我以后用的上时可以回来翻下笔记。仅此而已!!!

相关文章:

Wpf 使用 Prism 实战开发Day01

一.开发环境准备 1. VisualStudio 2022 2. .NET SDK 7.0 3. Prism 版本 8.1.97 以上环境&#xff0c;如有新的版本&#xff0c;可自行选择安装新的版本为主 二.创建Wpf项目 1.项目的名称:MyToDo 项目名称:这里只是记录学习&#xff0c;所以随便命名都无所谓,只要觉得合理就…...

6G关键新兴技术- 智能超表面(RIS)技术演进

摘要&#xff1a; 根据欧盟5G公私联盟协会定义&#xff0c;可重构智慧表面技术是由能够任意塑造电磁波面的材料组成&#xff0c;几乎是被动设备&#xff0c;可以适应或改变发射器和接收器之间的无线电信号。 一、产品定义及范围 根据欧盟5G公私联盟协会(5G Infrastructure P…...

【redhat9.2】搭建Discuz-X3.5网站

步骤 1.配置软件仓库 2.安装对应的软件 httpd php* mariadb* 3.启动服务 httpd mariadb 4.配置数据库 创建数据库 修改root密码 数据库的 5.传源码包&#xff08;Discuz-X3.5&#xff09; 解压 6.web页面初始化 关闭防火墙 允许http服务通过 修改权限 实…...

算法篇 : 并查集

介绍 英文名&#xff1a;union find set 作用&#xff1a;合并集合&#xff0c;查询集合 合并&#xff1a;将有直接关系的顶点放在一个集合里面 查找&#xff1a;查询某个顶点所属的集合 集合的标志&#xff1a;用祖先点的标号作为每个集合的标识 案例 如果说将下图的集合2合并…...

AM@微积分基本定理@微积分第二基本定理

文章目录 abstract微积分第二基本定理微积分基本公式公式书写例 结合不定积分的方法求定积分定积分换元法证明 定积分换元公式逆用例 和不定积分第二类换元法的差别定积分分部积分法例 abstract 微积分第一基本定理告诉我们,总是能够通过积分法构造(表达)一个连续函数的原函数…...

goland常用快捷键

移动光标 控制光标的移动&#xff1a;fn上下左右 移至当前页的页头&#xff1a;ctrlPgUp 移至并选中光标到当前页头&#xff1a;ctrlshiftPgUp 移至当前页的页尾&#xff1a;ctrlPgDn 移至并选中当前光标到当前页尾&#xff1a;ctrlshiftPgDn 返回到当前的光标处&#xf…...

CSDN写文章时常见问题及技巧

CSDN写文章时常见问题及技巧 1.有序待续、更新中 1.有序 过程&#xff1a; 写 1.空格 &#xff0c;注意“.”后加个空格就可以生成序号&#xff0c;随心所欲编辑了 待续、更新中 ————————————————————— 以上就是今日博客的全部内容了 创作不易,若对您有…...

JVM虚拟机详解

目录 01JVM由哪些部分组成/运行流程 什么是程序计数器 详细介绍堆 介绍方法区&#xff08;Method Area&#xff09; 直接内存 虚拟机栈(Java Virtual machine Stacks) 垃圾回收是否涉及栈内存 栈内存分配越大越好吗 方法内的局部变量是否线程安全 什么情况下会导致栈…...

Go 怎么操作 OSS 阿里云对象存储

1 介绍 在项目开发中&#xff0c;我们经常会使用对象存储&#xff0c;比如 Amazon 的 S3&#xff0c;腾讯云的 COS&#xff0c;阿里云的 OSS 等。本文我们以阿里云 OSS 为例&#xff0c;介绍怎么使用 Go 操作对象存储。 阿里云 OSS 提供了 REST Api 和 OSS Go SDK&#xff0…...

vue3 Suspense组件

在 Vue 3 中&#xff0c;<Suspense> 组件用于处理异步组件加载时的等待状态和错误处理。它允许你在加载异步组件时显示一个自定义的加载指示器&#xff0c;以及在加载失败时显示错误信息。以下是一个详细的 <Suspense> 组件的使用示例&#xff1a; 首先&#xff0…...

NlogPrismWPF

文章目录 Nlog&Prism&WPF日志模块实现原理添加配置注入服务应用测试其他模块怎么调用&#xff1f; Nlog&Prism&WPF 日志模块 介绍了为WPF框架Prism注册Nlog日志服务的方法 实现原理 无论是在WPF或者ASP.NET Core当中, 都可以使用ServiceCollection来做到着…...

文件上传漏洞(2), 文件上传实战绕过思路, 基础篇

文件上传漏洞实战思路(基础) 准备一句话木马文件 mm.php 一, 前端绕过 p1 浏览器禁用js先把mm.php后缀名修改为mm.jpg, 点击提交后, 用 burp 截取请求, 将数据包中的文件名修改回mm.php再提交. 二, 类型MIME绕过 p2 使用 burp 修改 Content-Type: image/jpeg 三, 黑名单绕…...

论文阅读 - Hidden messages: mapping nations’ media campaigns

论文链接&#xff1a; https://link.springer.com/content/pdf/10.1007/s10588-023-09382-7.pdf 目录 1 Introduction 2 The influence model 2.1 The influence‑model library 3 Data 4 Methodology 4.1 Constructing observations 4.2 Learning the state‑transiti…...

[AutoSAR系列] 1.3 AutoSar 架构

依AutoSAR及经验辛苦整理&#xff0c;原创保护&#xff0c;禁止转载。 专栏 《深入浅出AutoSAR》 1. 整体架构 ​ 图片来源&#xff1a; AutoSar 官网 从官往图中可以看出autosar作为汽车ECU软件架构&#xff0c;是通过分层来实现软硬件隔离。就像大多数操作系统一样&#xff…...

迁移学习 - 微调

什么是与训练和微调&#xff1f; 你需要搭建一个网络模型来完成一个特定的图像分类的任务。首先&#xff0c;你需要随机初始化参数&#xff0c;然后开始训练网络&#xff0c;不断调整参数&#xff0c;直到网络的损失越来越小。在训练的过程中&#xff0c;一开始初始化的参数会…...

09 用户态跟踪:如何使用eBPF排查应用程序?

09 用户态跟踪&#xff1a;如何使用eBPF排查应用程序&#xff1f; sudo bpftrace -e usdt:/usr/bin/python3:function__entry { printf("%s:%d %s\n", str(arg0), arg2, str(arg1))} # -*- coding: UTF-8 -*- import socket from socket import SOL_SOCKET, SO_R…...

深入浅出排序算法之堆排序

目录 1. 算法介绍 2. 执行流程⭐⭐⭐⭐⭐✔ 3. 代码实现 4. 性能分析 1. 算法介绍 堆是一种数据结构&#xff0c;可以把堆看成一棵完全二叉树&#xff0c;这棵完全二叉树满足&#xff1a;任何一个非叶结点的值都不大于(或不小于)其左右孩子结点的值。若父亲大孩子小&#x…...

Linux 命令(11)—— tcpdump

文章目录 一、命令简介二、使用方法三、命令选项四、基本语法和使用方法1. 显示 ASCII 字符串2. 抓取特定协议的数据3. 抓取特定主机的数据4. 将抓取的数据写入文件5. 行缓冲模式 五、理解tcpdump的输出六、过滤表达式1. Host 过滤2. Network 过滤3. Proto 过滤4. Port 过滤5. …...

8.自定义组件布局和详解Context上下文

pages/index.vue layout布局运行在服务端 1、在项目的目录下新建layout文件夹&#xff0c;并新建一个blog.vue布局文件 2、在页面中的layout函数里&#xff0c;返回刚才新建布局文件的名字blog就可以使用了 export default {...layout (context) {console.log(context)retu…...

几个Web自动化测试框架的比较:Cypress、Selenium和Playwright

介绍&#xff1a;Web自动化测试框架对于确保Web应用程序的质量和可靠性至关重要。它们帮助开发人员和测试人员自动执行重复性任务&#xff0c;跨多个浏览器和平台执行测试&#xff0c;并在开发早期发现问题。 以下仅代表作者观点&#xff1a; 本文探讨来3种流行的Web自动化测…...

Swagger2配置避坑指南:为什么你的Docket分组设置会导致api-docs 404?

Swagger2配置避坑指南&#xff1a;为什么你的Docket分组设置会导致api-docs 404&#xff1f; 在RESTful API开发中&#xff0c;Swagger2作为API文档生成工具被广泛使用。但许多开发者在配置过程中都遇到过这样的问题&#xff1a;明明能正常访问swagger-ui.html页面&#xff0c;…...

终极指南:3分钟掌握QMK Toolbox键盘固件刷写技巧

终极指南&#xff1a;3分钟掌握QMK Toolbox键盘固件刷写技巧 【免费下载链接】qmk_toolbox A Toolbox companion for QMK Firmware 项目地址: https://gitcode.com/gh_mirrors/qm/qmk_toolbox 你是否曾想过让你的机械键盘拥有独一无二的按键布局&#xff1f;或者想为心爱…...

手机号定位终极指南:3分钟掌握号码背后的位置秘密

手机号定位终极指南&#xff1a;3分钟掌握号码背后的位置秘密 【免费下载链接】location-to-phone-number This a project to search a location of a specified phone number, and locate the map to the phone number location. 项目地址: https://gitcode.com/gh_mirrors/…...

下一代嵌入式开发架构实战:基于Rust与STM32F4 HAL的安全高效系统设计

下一代嵌入式开发架构实战&#xff1a;基于Rust与STM32F4 HAL的安全高效系统设计 【免费下载链接】Awesome-Embedded A curated list of awesome embedded programming. 项目地址: https://gitcode.com/gh_mirrors/aw/Awesome-Embedded 在传统嵌入式开发中&#xff0c;开…...

OpenClaw+nanobot自动化测试:24小时监控网站可用性

OpenClawnanobot自动化测试&#xff1a;24小时监控网站可用性 1. 为什么需要自动化网站监控 作为个人站长&#xff0c;我经常遇到这样的困扰&#xff1a;半夜网站突然宕机&#xff0c;直到第二天收到用户反馈才发现问题。传统监控方案要么价格昂贵&#xff0c;要么配置复杂&a…...

从Proteus仿真到普中开发板烧录:51单片机抢答器完整开发流程避坑指南

从Proteus仿真到普中开发板烧录&#xff1a;51单片机抢答器完整开发流程避坑指南 在电子设计的学习道路上&#xff0c;51单片机项目开发是一个经典的入门实践。抢答器作为典型的互动式电子系统&#xff0c;涵盖了输入检测、逻辑控制、显示输出等核心知识点&#xff0c;是检验学…...

低成本AI助手方案:OpenClaw+GLM-4.7-Flash替代ChatGPT Plus

低成本AI助手方案&#xff1a;OpenClawGLM-4.7-Flash替代ChatGPT Plus 1. 为什么选择自建AI助手&#xff1f; 去年我开始频繁使用ChatGPT Plus处理日常工作&#xff0c;但每月20美元的订阅费用加上额外API调用&#xff0c;账单经常突破50美元。更让我困扰的是&#xff0c;处理…...

KeyDecoder项目架构分析:理解Flutter应用的数据流与状态管理

KeyDecoder项目架构分析&#xff1a;理解Flutter应用的数据流与状态管理 【免费下载链接】KeyDecoder KeyDecoder app lets you use your smartphone or tablet to decode your mechanical keys in seconds. 项目地址: https://gitcode.com/gh_mirrors/ke/KeyDecoder Ke…...

如何在PC上完美运行PS3游戏:RPCS3模拟器终极指南

如何在PC上完美运行PS3游戏&#xff1a;RPCS3模拟器终极指南 【免费下载链接】rpcs3 PS3 emulator/debugger 项目地址: https://gitcode.com/GitHub_Trending/rp/rpcs3 你是否曾经想过在电脑上重温那些经典的PS3游戏&#xff1f;或者想要体验那些只能在PlayStation 3上玩…...

终极指南:5个简单步骤用eqMac提升macOS音频体验 [特殊字符]

终极指南&#xff1a;5个简单步骤用eqMac提升macOS音频体验 &#x1f3a7; 【免费下载链接】eqMac macOS System-wide Audio Equalizer & Volume Mixer &#x1f3a7; 项目地址: https://gitcode.com/gh_mirrors/eq/eqMac 想为你的Mac打造专业级的音频体验吗&#x…...