自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 收藏
  • 关注

原创 bat脚本获取Windows的系统管理员权限并执行脚本

【代码】bat脚本获取Windows的系统管理员权限并执行脚本。

2024-03-25 17:22:08 554

原创 【WPF学习笔记】WPF 中使用附加属性解决 PasswordBox 的数据绑定问题

在 WPF 开发中 View 中的数据展示我们常通过 Binding 进行绑定。绑定的目标只能是依赖属性。而 PasswordBox 控件中的 Password 并不是一个依赖属性,所以我们在使用 Password 时无法直接进行数据绑定。为了解决这个问题,我们就需要自己定义依赖属性。标题中的 “附加属性” 是依赖属性的一种特殊形式。

2023-03-30 22:58:47 2018

原创 三层架构、MVC、前后分离的一些知识

前端的UI层,只是知道DTO的存在,同时前端需要的数据都在一个DTO中,这样,每次调用服务层的时候,只需要调用一次就可以完成所有的业务逻辑操作,而不是原来的直接调用业务逻辑层那样的,需要调用多次,对于分布式场景下,减少服务调用的次数,尤其重要。MVC架构是一种开发模式,与三层架构不是一个类型的概念。在实际的业务场景下,后端实现或存储的数据远比用户需要的数据要庞大和复杂,所以前端需要的数据相对来说要么是组合的,要么是抽取的,不是完整的,因为在设计数据存储格式上都会有一些额外的设计和考虑,便产生了DTO层。

2023-03-30 22:43:29 2307

原创 0.面向对象的设计模式与原则

在面向对象的语言中,继承是必不可少的、非常优秀的语言机制。它存在非常明显优缺点。

2023-03-07 16:34:39 542 1

原创 Prism学习:Region的使用

在我们的日常开发中,通常会将一个页面切割成不同的部分。如下一个页面,我们可以将其划分为头部、左侧目录、页面主体三个部分。在Prism中,我们可以将这三个部分理解为三个区域(Region),而区域之中可以再细分区域。Region负责承担UI控件,其中内容并不固定,可以动态分配。Prism中Region通过RegionManager进行管理。

2023-02-23 12:36:13 1646

原创 委托(C#入门详解学习笔记)

委托(delegate)可以理解为是C/C++中函数指针的”升级版“。委托是一种类(class),类是数据类型,所以委托也是一种数据类型。类可以声明变量、创建实例,所以委托也可以。委托的声明格式与C#中一般的类的声明格式不同,反而更像是C/C++中函数指针的声明格式。这样做主要是为了照顾可读性,并与C/C++传统保持一致。

2023-02-22 22:25:28 599

原创 【WPF学习笔记】WPF中使用ValidationRule自定义验证规则

WPF中使用ValidationRule自定义验证规则本文主要是展示在 WPF 中使用 ValidationRule 自定义验证规则,同时展示两种错误响应方式。一种是通过 Behavior 传递到 ViewModel 中,然后进行错误信息响应;一种是直接在 View 中遍历当前也的所有错误元素,在页面中通过事件统一响应。1、自定义验证规则类这里自定义两个验证规则类,分别用于验证 “用户名”输入不可为空、“邮箱”输入值需满足格式要求。两个类需要继承 ValidationRule 类。Validatio

2021-02-08 01:08:19 3148 2

原创 【WPF学习笔记】WPF中动画(Animation)的简单使用

WPF中动画(Animation)的简单使用动画(Animation)的部分简单属性的介绍使用动画需要使用以下两个类:Storyboard:创建动画需要使用故事板(Storyboard)元素,用于装载动画XXXAnimation:具体的动画类,实现具体的动画效果;具体的动画实现通过 XXXAnimation 中的属性实现,如下,以 DoubleAnimation 为例。不同参数类型的依赖属性需要对应使用不同的 动画类。From:动画的起始值To:动画的结束值。From 和 To 成对使用。B

2021-02-01 23:25:15 3785 1

原创 【WPF学习笔记】WPF中行为(Behavior)的简单使用

WPF中行为(Behavior)的简单使用在我之前的 WPF 开发中,需要实现一些页面效果时,常使用到的方式就是重写元素的样式(Style),然后再样式里面设置使用元素的各类触发器(Trigger)来实现效果。这样常常需要编写大量的代码。近日学习到 WPF 中有一个叫做 Behavior 的扩展方式,可以用来实现页面效果,实现方式更为简便。学习笔记如下:添加需要的DLL库要使用 Behavior 的相关功能需要先添加 “System.Windows.Interactivity” 库。可以通过 Nug

2021-02-01 20:40:55 1451

原创 EF Core 学习笔记

EF Core 学习笔记EF Core 学习笔记准备工作如何使用 EF Core 生成数据库设置字段属性实体间的对应关系1:n 关系m:n 关系1:1 关系数据库操作添加、查询单条数据添加批量数据库操作插入两个不同表的数据查询能完成查询的方法查询使用参数的区别模糊查询的两种方法生成 SQL 语句的顺序修改、删除删除数据修改数据更改未追踪数据添加关系型数据对比加载关联数据预加载显式加载懒加载多个多关联数据查询修改关联数据修改关联数据设置多对多关系删除多对多关系修改多对多关系设置一对一的关系执行原生的 SQL数

2020-12-30 00:03:37 632

原创 WPFMediaKit的使用

WPFMediaKit的使用页面代码页面交互需要添加 WPFMediaKit 的Nuget 包页面代码CameraWindow.xaml<Window x:Class="WPF_WPFMediaKit.CameraWindow" x:Name="cameraWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.micros

2020-12-14 00:13:35 920

原创 C#学习——LINQ

C#学习——LINQC#学习——LINQ查询表达式LINQ 理论LINQ 与 SQL 的区别与联系LINQ 分类LINQ 查询的四个要素LINQ 初级实例协变与逆变LINQ 综合实例学习资料来源于B站up主花千芳的视频:https://www.bilibili.com/video/BV1xJ411g7HmC#学习——LINQ查询表达式查询表达式必须以 from 字句开头,以 select 或 group 字句结束。第一个 from 子句和最后一个 select 子句或group 子句之间,可以包含一

2020-12-07 00:41:15 345

原创 ASP.NET Core 3.x 学习笔记(10)——部署

ASP.NET Core 3.x 学习笔记(10)——部署ASP.NET Core 3.x 学习笔记(10)——部署FDD,Framework-dependentSCD,Self-containedFDE,Framework-dependent executables发布流程ASP.NET Core 3.x 学习笔记(10)——部署.NET Core 部署类型(方式)FDD,Framework-dependentSCD,Self-containedFDE,Framework-dependent

2020-12-06 14:09:17 123

原创 ASP.NET Core 3.x 学习笔记(7)——Blazor

ASP.NET Core 3.x 学习笔记(7)——BlazorASP.NET Core 3.x 学习笔记(7)——Blazor编程模式对比Blazor客户端宿主模型Mono服务器端宿主模型从 Empty 模板开始建立一个 Blazor 项目本系列学习笔记均来源于B站UP主”软件工艺师“的学习视频,学习连接如下:https://www.bilibili.com/video/BV1c441167KQASP.NET Core 3.x 学习笔记(7)——Blazor编程模式对比MVCSPA(Sing

2020-12-06 00:35:14 599

原创 GitHub 搜索技巧

GitHub 搜索技巧in:name xxx 搜索项目名称包含“xxx”的项目in:readme xxx 搜索项目 README.md 文件中包含“xxx”的项目in:description xxx 搜索项目描述包含“xxx”的项目in:name xxx 搜索项目名称包含“xxx”的项目stars:>3000 搜索项目 stars 数 大于3000 的项目forks:>3000 搜索项目 stars 数 大于3000 的项目language:java 搜索语言为 JA

2020-12-04 07:12:05 256

原创 ASP.NET Core 3.x 学习笔记(6)——SignalR

ASP.NET Core 3.x 学习笔记(6)——SignalRASP.NET Core 3.x 学习笔记(6)——SignalR什么是实时 webSignalR “底层”技术Polling(轮询)Long PollingServer Sent Events(SSE)Web SocketWeb Socket 的生命周期HTTP 握手消息类型SignalR 概念学习SiganlR 回落机制RPCHub横向负载使用 SignalR具体通信逻辑,后续加强学习后分析本系列学习笔记均来源于B站UP主”软件工艺师“

2020-11-26 00:08:24 339

原创 ASP.NET Core 3.x 学习笔记(5)——Razor Page

本系列学习笔记均来源于B站UP主”软件工艺师“的学习视频,学习连接如下:https://www.bilibili.com/video/BV1c441167KQASP.NET Core 3.x 学习笔记(5)——Razor PageRazor PageMVC,实现如下三个分层:Model:数据View:HTML、Razor、TagHelpersControllers:逻辑Razor Page,将下列三个部分同意:数据Html、Razor、TagHelpers逻辑Razo

2020-11-23 21:27:18 582

原创 ASP.NET Core 3.x 学习笔记(4)——View Component

本系列学习笔记均来源于B站UP主”软件工艺师“的学习视频,学习连接如下:https://www.bilibili.com/video/BV1c441167KQASP.NET Core 3.x 学习笔记(4)——View Component紧接前面文章的内容,建立一个复用的控件,在项目的每个页面都显示公司的总人数和部门的平均人数。这时候就需要使用到 View Component。View Component为什么使用其它方式不可行?为什么 Partial View 不行?因为没法添加业务逻辑;

2020-11-23 07:26:05 183

原创 ASP.NET Core 3.x 学习笔记(3)——配置信息的使用

ASP.NET Core 3.x 学习笔记(3)——配置信息的使用ASP.NET Core 3.x 学习笔记(3)——配置信息的使用ASP.NET Core 的配置信息ASP.NET Core 的配置信息源使用配置信息实现字体加粗通过 appsettings.json 实现自定义配置信息源的 json 文件本系列学习笔记均来源于B站UP主”软件工艺师“的学习视频,学习连接如下:https://www.bilibili.com/video/BV1c441167KQASP.NET Core 3.x 学习笔

2020-11-22 12:18:50 237

原创 ASP.NET Core 3.x 学习笔记(2)——一个简单的 MVC 项目学习

ASP.NET Core 3.x 学习笔记(2)——一个简单的 MVC 项目学习ASP.NET Core 3.x 学习笔记(2)——一个简单的 MVC 项目学习MVC 相关技术ModelsServicesControllersViewsDepartmentEmployeeASP.NET Core 3.x 学习笔记(2)——一个简单的 MVC 项目学习本系列学习笔记均来源于B站UP主”软件工艺师“的学习视频,学习连接如下:https://www.bilibili.com/video/BV1c441167

2020-11-21 18:47:19 391

原创 ASP.NET Core 3.x 学习笔记(1)——从项目结构了解依赖注入、管道、路由

ASP.NET Core 3.x 学习笔记(一)——从项目结构了解依赖注入、管道、路由ASP.NET Core 3.0 学习笔记项目结构Program.csStartup.cs在 ASP.NET Core MVC 中简单实现项目启动环境变量静态文件包管理静态文件合并依赖注入 DI(Dependency Injection)DI 的优点ASP.NET Core 管道(pipeline)配置中间件路由ASP.NET Core 应用的多样性端点 endpointASP.NET Core 3.0 学习笔记项目结

2020-11-17 21:08:37 429

原创 WPF中资源字典(ResourceDictionary)的使用

WPF中资源字典(ResourceDictionary)的使用资源字典(ResourceDictionary)的使用1、建立资源文件2、项目中引入资源3、使用资源将资源全局注册资源字典(ResourceDictionary)的使用1、建立资源文件各资源文件中,若需要引入项目中其它文件,则可通过命名空间引入。对应各资源元素,设置x:key值。代码中通过x:key值获取相应的资源。以参数值转换器为例。ValueConverter.xaml<ResourceDictionary xmlns="ht

2020-11-16 11:33:16 11618 1

原创 C#异步编程案例学习——异步加载大资源文件 2 之 多线程加载

本文具体根据异步加载大资源文件案例中的多线程变成学习C# 中 BeginInvoke 与 EndInvoke 的一个简单的使用案例在使用 WPF 开发桌面软件过程中,遇到一个需要预加载大量文件的需求,具体需求如下:在软件启动后,需要加载大量的 CAD 资源文件,文件供软件中后续使用。文件加载过程中非常耗时,若同步加载则界面会出现假死的状态。在文件加载过程中,需要保证界面仍然可以进行其他操作,屏蔽跟资源文件有关的操作。文件加载完成后,开放跟资源文件有关的操作。解决方案:在软件启动后,软件页

2020-11-12 14:22:03 938

原创 c#+handle.exe实现升级程序在运行时自动解除文件被占用的问题

参考文档:http://www.zuowenjun.cn/post/2016/09/05/243.html下载链接https://docs.microsoft.com/zh-cn/sysinternals/downloads/handle

2020-11-12 10:46:38 263

原创 C#异步编程案例学习——异步加载大资源文件1 之 使用 BeginInvoke 与 EndInvoke

在使用 WPF 开发桌面软件过程中,遇到一个需要预加载大量文件的需求,具体需求如下:在软件启动后,需要加载大量的 CAD 资源文件,文件供软件中后续使用。文件加载过程中非常耗时,若同步加载则界面会出现假死的状态。在文件加载过程中,需要保证界面仍然可以进行其他操作。解决方案:在软件启动后,软件页面正常完成加载后,后台继续进行异步加载资源文件,此时可操作正在加载的资源文件的按钮设置为不可操作。文件加载完成之后开发操作资源文件的按钮可操作。具体实现如下:1、WPF 页面 Window 中存在一个

2020-11-10 16:43:13 737

原创 WPF中使用较少的事件(event)记录

WPF中使用较少的事件(event)记录Window.ContentRenderedWindow.ContentRenderedContentRendered 事件在窗口的内容呈现完毕之后发生。如果该窗口不包含任何内容,则不会引发此事件。具体使用如下代码,代码中将 Window_ContentRendered 绑定到 ContentRendered 事件上。<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/present

2020-11-10 11:13:30 580

原创 C#异步编程学习笔记5 之 异步模式

C#异步编程学习笔记5 之 异步模式异步模式取消(cancellation)CancellationToken 和 CancellationTokenSourceDelay 方法同步方法其它进度报告IProgress\ 和 Progress\基于异步 Task 的模式(TA P)Task 组合器WhenAnyWhenAllWhenAll 异常实例自定义 Task 组合器异步模式取消(cancellation)取消,指的是在等待一个异步操作完成的时候,对异步操作进行取消。使用取消标志来实现对并发进

2020-11-10 01:07:05 354

原创 C#异步编程学习笔记3 之 异步原理

C#异步编程学习3 之 异步原理异步原理同步 vs 异步什么是异步编程异步编程的两种用途一点建议异步编程和Continuation异步原理同步 vs 异步同步操作会在返回调用者之前完成它的工作异步操作会在返回调用者之后去做它的(大部分)工作异步的方法更为少见,会启用并发,因为它的工作会与调用者并行执行异步方法通常很快(立即)就会返回到调用者,所以叫非阻塞方法目前见到的大部分的异步方法都是通用目的的:Thread.StartTask.Run可以将 continuation 附加到 T

2020-11-09 07:32:37 605

原创 C#异步编程学习笔记2 之 Task

C#异步编程学习2 之 TaskTaskThread的问题Task Class开始一个Task(Task.Run)Wait 等待长时间运行的任务(Long-running tasks)Task 的返回值Task 的异常异常与“自治”的Task未观察到的异常Continuationawaiter如果发生故障非泛型task同步上下文ContinueWithTaskCompletionSource使用TaskCompletionSource的真正魔力Task.DelayTaskThread的问题线程(Thr

2020-11-09 07:29:56 737

原创 C#异步编程学习笔记1 之 线程Thread

C#异步编程学习1 之 线程ThreadC#异步编程线程 Thread什么是线程Thread.Join() && Thread.Sleep()阻塞与解除阻塞阻塞 BlockingThreadState属性解除阻塞 Unblocking一些其它概念忙等待(自旋 Spinning)本地 VS 共享的状态(Local VS Shared State)线程安全 Thread Safety锁定与线程安全(简介)向线程传递数据Lambda表达式与被捕获的变量异常处理前台和后台线程(Foreground

2020-11-09 07:27:35 669

原创 C#异步编程学习笔记4 之 异步函数

C#异步编程学习3 之 异步函数异步函数awaitingasync 修饰符异步方法如何执行可以 await 什么?捕获本地状态await 之后在哪个线程上执行UI 上的 await代码运行原理与粗粒度的并发相比编写异步函数(编写异步函数)富客户端场景下返回 Task\C# 中如何设计异步函数编译器能对异步函数生成 Task 意味着什么?异步调用图执行并行(Parallelism)异步 Lambda 表达式异步中的同步上下文发布异常OperationStarted 和 OperationCompleted优化

2020-11-08 22:56:54 279

原创 C#中委托(delegate、Func、Action、precidate)学习笔记

C#中Func和Action的简单使用delegate的简单使用Func声明Func结合Lambda表达式使用结合匿名方法使用Action声明Action结合Lambda表达式使用结合匿名函数使用通常自定义使用委托是用delegate。Func和Action类是特殊的类型,它们允许程序员在不必指定自定义委托类型的情况下,去使用委托。而通过F12查看函数声明可以发现,Func和Action类本质上也是通过delegate关键字实现的。Func和Action在使用时非常相似,下面将简单介绍Func和Acti

2020-10-28 20:52:15 1122

原创 C#中List集合的常用方法

C#中List集合的常用方法常用方法和属性常用属性常用方法List类是ArrayList类的泛型等效类,该类使用大小可按需动态增加的数组实现IList泛型接口。泛型的好处:它为使用c#语言编写面向对象程序增加了极大的效力和灵活性。不会强行对值类型进行装箱和拆箱,或对引用类型进行向下强制类型转换,所以性能得到提高。性能注意事项:在决定使用IList还是使用ArrayList类(两者具有类似的功能)时,记住IList类在大多数情况下执行得更好并且是类型安全的。如果对IList类的类型T 使用引用类型,则两

2020-10-28 15:46:54 11469

原创 Ado.Net学习——基础知识记录

Ado.Net学习——基础知识记录ADO.NetADO.Net组成SqlConnection数据库连接字符串两种方法进行数据库连接数据库连接池SqlCommandExecuteNonQueryExecuteScalarExecuteReaderSqlParameterSqlCommand中添加参数参数的使用SqlDataReaderDataTableDataSetDataRelationSqlDataAdapter填充数据更新数据DataAdapter与DataReader对比ADO.Net调用数据库事务简

2020-10-27 07:49:52 580 1

原创 更改Excel相关注册表

手动更改Excel相关注册表手动更改Excel相关注册表有注册表目录无注册表目录手动更改Excel相关注册表使用WPF开发了一个桌面端软件,使用Microsoft官方的Office.dll实现导出Excel报告的功能。但部分用户因为各种原因,如重复安装/卸载WPF和Office,导致相关注册表混乱,使软件无法正常导出Excel报告。经过排查找到手动更改注册表方法。有注册表目录使用快捷键“win”+“R”打开对话框在弹出的对话框中输入“regedit”打开在“注册表编辑器”中按以下顺序打开相应的

2020-10-25 15:24:43 1587

原创 Git操作记录

不熟悉的Git操作记录Git远程仓库地址变更(git remote)方法一:直接修改远程地址方法二方法三Git删除分支Git远程仓库地址变更(git remote)git远程仓库地址变更了,本地代码有更改。如何将代码关联到新的地址下的仓库。git remote:查看当前远程仓库名称git remote -v:查看当前远程仓库具体地址信息方法一:直接修改远程地址git remote set-url origin xxxx(远程地址)可以直接将当前本地代码仓库关联到对应的远程地址的仓库方法二g

2020-10-25 15:13:35 75

原创 WPF之层级数据模板HierarchicalDataTemplate的使用

WPF之层级数据模板HierarchicalDataTemplate的使用1、HierarchicalDataTemplate + List2、HierarchicalDataTemplate + XML3、TreeView + HierarchicalDataTemplate + ObservableCollection\HierarchicalDataTemplate是能够帮助层级控件显示层级数据的模板,一般多用于MenuItem和TreeViewItem,也可自己实现层级数据结构。1、Hierar

2020-10-25 14:40:07 4672

原创 WPF中鼠标右键菜单栏实现(ContextMenu)

WPF控件右侧状态栏实现ContextMenu1、在Resources中声明,在控件中使用2、在控件中直接声明ContextMenuWPF中ContextMenu表示鼠标右键菜单栏,适用于WPF任何控件。ContextMenu属性默认实现,鼠标右键点击后显示菜单栏的功能,故使用ContextMenu属性时只需要安心实现菜单栏的样式和功能即可。常用的通过ContextMenu实现右键菜单栏的方式有两种。1、在Resources中声明,在控件中使用在Window.Resources中声明具体的Con

2020-10-22 17:12:09 9758

原创 WPF中通过反射实现对象的复制粘贴

WPF中通过反射实现对象的复制粘贴1、前言2、复制3、粘贴1、前言在WPF项目开发过程中,需要实现一个功能。在当前界面的工程列表中,实现工程的复制粘贴功能。要求能够完整拷贝被复制的工程的各个参数,并生产一个跟被拷贝工程没有任何关联的新的工程。工程代码结构如下2、复制复制的操作很简单,此处获取到完整的工程对象信息即可,具体的克隆拷贝过程在粘贴的函数中实现。private ICloneable copyItem; //复制Item/// <summary>/// 复制工程///

2020-10-22 14:34:10 876

转载 JavaWeb——邮件发送

JavaWeb——邮件发送邮件发送1、邮件收发简介1.1、电子邮件1.2、传输协议2、Java发送邮件2.1、概述2.2、纯文本邮件2.3、带图片和附件的邮件2.3.1、类介绍2.3.2、创建包含内嵌图片的邮件2.3.3、带图片和附件的复杂邮件发送**3、JavaWeb发送邮件邮件发送1、邮件收发简介1.1、电子邮件要在网络上实现邮件功能,必须要有专门的邮件服务器。这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。SMTP服务器地址:一

2020-08-26 00:46:55 585

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除