在软件行业,经常会听到一句话“文不如表,表不如图”说明了图形在软件应用中的重要性。同样在WPF开发中,为了程序美观或者业务需要,经常会用到各种个样的图形。今天以一些简单的小例子,简述WPF开发中几何图形(Geometry)相关内容,仅供学习分享使用,如有不足之处,还请指正。 ...
C#用户控件之旋转按钮 按钮功能:手自动旋转,标签文本显示、点击二次弹框确认(源码在最后边); 【制作方法】 找到控件的中心坐标,画背景外环、内圆;再绘制矩形开关,进行角度旋转即可获得; 【关键节点】 No.1 获取中心坐标,思考要绘制图形的相对坐标、宽度、高度; No.2 更改坐标系原点,以此原点 ...
之前写过两篇关于Roslyn源生成器生成源代码的用例,今天使用Roslyn的代码修复器CodeFixProvider实现一个cs文件头部注释的功能, 代码修复器会同时涉及到CodeFixProvider和DiagnosticAnalyzer, 实现FileHeaderAnalyzer 首先我们知道修 ...
简介 这个类封装了必应首页的每日壁纸查看功能,提供了查看、保存壁纸的方法,最大支持查看近8天的壁纸 使用方法 async Task Main() { try { var bing = BingWallpaperAPI.CreateInstance(8); //初始化,参数8表示一共会加载8张图片 v ...
本文为大家介绍下.NET解压/压缩zip文件。虽然解压缩不是啥核心技术,但压缩性能以及进度处理还是需要关注下,针对使用较多的zip开源组件验证,给大家提供个技术选型参考 之前在《.NET WebSocket高并发通信阻塞问题 - 唐宋元明清2188 - 博客园 (cnblogs.com)》讲过,团队 ...
1. 生成式 AI 简介 https://imp.i384100.net/LXYmq3 2. Python 语言 https://imp.i384100.net/5gmXXo 3. 统计和 R https://youtu.be/ANMuuq502rE?si=hw9GT6JVzMhRvBbF 4. 数 ...
先看一下效果吧: 我们直接通过改造一下原版的TreeView来实现上面这个效果 我们先创建一个普通的TreeView 代码很简单: <TreeView> <TreeViewItem Header="人事部"/> <TreeViewItem Header="技术部"> <TreeViewItem He ...
C#用户控件之指示灯 在体现通讯状态、运行状态等用一个靓眼的指示灯如何做? 思路(GDI) 外环用笔绘制(Pen),内圆用画刷(SolidBrush); 两个方法(用笔画圆,用画刷填充圆的内部): 绘制边界RectangleF定义的椭圆/圆 DrawEllipse(Pen pen,Rectangle ...
前言 推荐一款基于.NET 8、WPF、Prism.DryIoc、MVVM设计模式、Blazor以及MySQL数据库构建的企业级工作流系统的WPF客户端框架-AIStudio.Wpf.AClient 6.0。 项目介绍 框架采用了 Prism 框架来实现 MVVM 模式,不仅简化了 MVVM 的典型 ...
场景: 在不动 业务逻辑的情况下, 实现读写缓存 这里使用的AOP的方式 在 方法上加注解, 这目前有个弊端不能传数组, 涉及到排序问题 /// <summary> /// Json Redis缓存 /// </summary> public class RedisInterceptorAttrib ...
在网上找了许多例子 但是放在.net8 就不好使了 比如 在Program 中配置 IInterceptor或者 services.ConfigureDynamicProxy ,网上说的对 但是也不全对 //通过单元测试(MSTest) //创建IServiceCollection IService ...
C#用户控件之仪表盘 如何让温度、湿度、压力等有量程的监控值如仪表盘(DashBoard)一样显示? 思路(GDI绘图): 定义属性:(仪表盘的半径、颜色、间隙;刻度圆的半径、颜色、字体;指针的颜色、占比;文本的字体、占比;) 绘制图形:(半圆、刻度、指针、中心、文本) 定义属性(将以上属性挨个敲完 ...
项目上遇到使用WebSocket超时问题,具体情况是这样的,OTA升级过程中,解压zip文件会有解压进度事件,将解压进度通过进程通信传给另一进程,通信提示超时异常 小伙伴堂园发现大文件使用Zip解压,解压进度事件间隔竟然是1ms,简直超大频率啊 但是,解压事件超频也不应该通信异常啊,于是我通过1ms ...
前言 在 Web 应用开发过程中,防抖(Debounce) 是确保同一操作在短时间内不会被重复触发的一种有效手段。常见的场景包括防止用户在短时间内重复提交表单,或者避免多次点击按钮导致后台服务执行多次相同的操作。无论在单机环境中,还是在分布式系统中都有一些场景需要使用它。本文将介绍如何在ASP.NE ...
在WPF开发中经常需要进行绘制图形,可以利用Shape类型绘制基本的形状,而且Shape派生自FrameworkElement,属于UI元素范畴,可以直接利用XAML进行绘制。本文通过一些简单的小例子,简述如何通过Shape类绘制形状,仅供学习分享使用,如有不足之处,还请指正。 ...
C#用户控件之文本显示、设定组件 如何绘制一个便捷的文本显示组件、文本设值组件(TextShow,TextSet)? 绘制此控件的目的就是方便一键搞定标签显示(可自定义方法显示文本颜色等),方便自定义方法又省略了挨个拖拽的过程 纯定义属性 【文本设定】:字体、标签、值、单位;事件方法:Enter、L ...
前言 一个 .NET 验证框架,支持链式操作,易于理解,功能完善,组件内提供十几种常用验证器,可扩展性好,支持自定义验证器,支持本地化多语言。 项目介绍 FluentValidation 是一个开源的 .NET 库,用于验证对象的属性。 它提供了一种简单而强大的方式来定义和执行验证规则,使验证逻辑的 ...
无效果的尝试 1、 在工具箱 点右键选择 Repair ToolBox... 无效果2、 在工具箱中点右键重置工具箱 无效果3、 在工具箱中 右键 选择项 浏览选择对应的dll,报错提示 “面向无法动态枚举工具箱项目的平台” 无效果4、删除整个vs配置文件夹:%LocalAppData%\Micro ...
@目录前言一、VirtualizingStackPanel1.1 虚拟化功能介绍1、在Window中添加一个ListBox控件。2、在设计视图中用鼠标选中ListBox控件并右健依次单击“编辑其他模板”-“编辑项的布局模板”-“编辑副本”。3、查看生成的模板代码。1.2 虚拟化参数介绍二、Custo ...
C#用户控件之流动管道 如何绘制一个动态的流动管道(FlowPipe)? 分两步绘制 定义属性; 画布重绘; 主要技能: 管道的绘制(渐变色矩形) /// <summary> /// 画渐变色矩形的方法 /// </summary> /// <param name="g">画布</param> // ...