自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(163)
  • 资源 (5)
  • 收藏
  • 关注

原创 演示:基于WPF的DrawingVisual开发GS(2019)1822号矢量中国地图

VS2022,Net7,GDAL,审图号为GS(2019)1822号矢量数据,DrawingVisual。

2024-08-06 23:32:53 1051

原创 演示:【Avalonia-Controls】Avalonia皮肤,主题,自定义控件,数据库,系统模块资源库

开源地址:GitHub - HeBianGu/Avalonia-Controls: Avalonia控件库Nuget包地址:NuGet Gallery | Packages matching HeBianGu.AvaloniaUI.演示视频地址:【Avalonia-Controls】Avalonia工具组件皮肤库 v1.0.0_哔哩哔哩_bilibili【Avalonia-Controls】VlcPlayer视频播放器_哔哩哔哩_bilibili 【Avalonia-Controls】Android WeC

2024-07-12 12:20:08 1306

原创 演示:WPF开发的Diagram自动化流程图应用

流程图仪器仪表机器人网络通信测试PLC测试。

2024-06-17 11:20:13 1279

原创 示例:应用WPF绘制轻量Chart图表之组合图效果预览

一、目的:演示应用WPF开发的Chart图,仅供参考二、环境:.Net Framework 4.5三、实现功能:1、曲线图2、散点图3、柱状图4、饼状图5、极坐标图5、雷达图其他功能后续添加...四、示例:经济指标男女身高体重分布温度与湿度访问来源Beijing AQI雷达图蒸发量和降雨量寿命与GDP版本下载量波形图正弦曲线示波图...

2020-10-17 23:34:51 8259 11

原创 示例:自定义WPF底层控件UI库 HeBianGu.General.WpfControlLib V2.0版本

一、目的:封装了一些控件到自定义的控件库中,方便快速开发二、实现功能:基本实现常用基础控件,满足常规软件快速开发同时支持框架.Net Core 3.0 + ,.Net FrameWork4.5+三、整体概况1、登录页面:登录页面只需要继承LoginWindowBase基类,并且设置样式Style="{StaticResource S.Window.L...

2019-11-15 14:55:24 4594 8

原创 示例:WPF仿制OSK做的系统键盘和数字键盘

一、目的:在应用osk.exe系统键盘时遇到很多不方便,比如有些系统调用不出来等问题,由此开发了一个系统键盘仿制osk二、实现功能 1、目前实现大部分osk键盘的输入功能,还有部分按键由于时间关系没有实现 2、支持组合按键shift、ctrl、alt等方式输入 3、支持大小写输入切换 4、支持shift切换复合按键 ...

2019-01-19 14:38:29 6822 14

原创 示例:WPF开发的可视化大屏示例

一、目的:利用PhotoShop分解PSD可视化文件,获取图片等背景资源放入WPF中构建自己的可视化大屏项目二、效果图(半成品,后续更新..)原psd效果图三、参考代码(本示例仅供学习交流)GitHub -https://github.com/HeBianGu/WPF-ScreenData.git...

2019-01-08 17:47:01 18151 10

原创 封装:WPF绘制曲线视图

一、目的:绘制简单轻量级的曲线视图二、实现:1、动画加载曲线2、点击图例显示隐藏对应曲线3、绘制标准基准线4、绘制蒙板显示标准区域曲线图示例:心电图示例:三、实现代码View:<echart:StaticCurveChartPlotter x:Name="chart" Background="White" DataSource="{Bi...

2018-05-09 17:57:12 16944 22

原创 示例:WPF中Grid显示网格线的几种方式

效果如下:实现方式如下:

2024-09-18 23:59:17 723

原创 笔记:简介Drawing是什么,都有哪些,如何使用

在 WPF 中,Drawing 是一个抽象基类,用于表示可绘制的对象。Drawing 类及其派生类提供了一种轻量级的方式来描述图形、图像和视频等内容。Drawing 对象通常用于不需要用户交互的静态内容,例如背景图像、图标和装饰性图形。

2024-09-18 17:36:39 680

原创 笔记:简要介绍WPF中FormattedText是什么,主要有什么功能

FormattedText 是 WPF中的一个类,位于 System.Windows.Media 命名空间中。它用于创建和管理格式化的文本,这些文本可以包含不同的字体、大小、颜色和其他文本属性。FormattedText 类提供了一种灵活的方法来处理复杂的文本布局和渲染。

2024-09-14 23:32:22 888

原创 演示:基于WPF自绘的中国省份、城市、区县矢量地图

​​​​​​​。

2024-09-14 23:15:39 1291

原创 演示:基于WPF的自绘的中国地铁轨道控件

【WPF-Subway】自绘中国地铁线路图_哔哩哔哩_bilibili System.Windows.Controls 命名空间 | Microsoft Learn控件库 - WPF .NET Framework | Microsoft LearnWPF 介绍 | Microsoft LearnXAML概述 - WPF .NET | Microsoft LearnWindows Presentation Foundation 简介 - WPF .NET | Microsoft Learn使用 Visual

2024-09-14 15:10:25 678

原创 笔记:如何使用Process Explorer分析句柄泄露溢出问题

• 下载和运行:从 Sysinternals 网站下载并运行 Process Explorer。• 监控句柄使用情况:查看进程的句柄数,监控是否持续增加。• 分析句柄泄漏:查看句柄详情,查找哪些句柄数量异常多或持续增加。• 解决问题:检查和修复代码,确保正确释放资源。通过这些步骤,你可以使用 Process Explorer 有效地分析和解决句柄泄漏问题。

2024-09-02 17:34:42 1131

原创 笔记:Sysinternals 是什么, 常见的 Sysinternals 工具有哪些

Sysinternals 是一套由微软提供的高级系统工具和实用程序,最初由 Mark Russinovich 和 Bryce Cogswell 创建。这些工具旨在帮助 IT 专业人员和开发人员诊断和解决 Windows 操作系统中的各种问题。Sysinternals 工具集包含许多独立的工具,每个工具都有特定的用途。• Sysinternals:一套由微软提供的高级系统工具和实用程序,用于诊断和解决 Windows 操作系统中的各种问题。

2024-09-02 17:14:17 609

原创 笔记:简要介绍什么是句柄(Handle)常见句柄都有哪些

在 Windows 操作系统中,句柄(Handle)是一个用于标识和管理系统资源的抽象标识符。不同类型的句柄用于管理不同类型的资源。以下是一些常见的句柄类型及其用途:常见句柄类型• 窗口句柄(HWND):用于标识窗口和控件。• 文件句柄(HFILE):用于标识文件和文件流。• 设备句柄(HDEV):用于标识设备。• GDI 对象句柄:用于标识图形设备接口对象。• 用户对象句柄:用于标识用户界面对象。• 线程句柄(HTHREAD):用于标识线程。

2024-09-02 17:02:14 1130

原创 演示:基于WPF的DrawingVisual和谷歌地图瓦片开发的地图(完全独立不依赖第三方库)

Net7,DrawingVisual,谷歌地图瓦片。支持谷歌瓦片路线图,卫星图,本文主要演示卫星图数据。

2024-08-30 23:32:16 1093

原创 笔记:应用Visual Studio Profiler分析CPU使用情况

通过这些步骤,你可以有效地使用 Visual Studio Profiler 分析 CPU 使用情况,识别和解决性能瓶颈,从而提高应用程序的性能和响应速度。使用 Visual Studio Profiler 分析 CPU 使用情况可以帮助你识别性能瓶颈,优化代码,提高应用程序的响应速度。这些通常被称为 "热点"。• 选择合适的分析时机:在应用程序执行关键操作时进行分析,以便捕获相关的 CPU 使用数据。6. 查看报告:在生成的 CPU 报告中,查看哪些方法消耗了最多的 CPU 时间。

2024-08-30 22:13:58 956

原创 笔记:应用Visual Studio Profiler识别和解决内存泄漏问题

1. 查找未释放的对象:在内存报告中,查找那些在多个快照中持续存在且数量不断增加的对象。1. 解除不必要的引用:确保在不再需要对象时,及时解除对它们的引用。2. 分析对象引用:查看这些对象的引用路径,找出哪些对象或数据结构持有对它们的引用,导致它们无法被垃圾回收。2. 执行操作:在应用程序运行时,执行你想要分析的操作,特别是那些你怀疑可能导致内存泄漏的操作。3. 比较快照:如果你获取了多个快照,可以比较不同快照之间的内存使用变化,找出内存增长的原因。

2024-08-30 15:06:21 909

原创 笔记:如何优化垃圾回收(GC)的性能

在某些实时应用程序中,可以使用 GC.TryStartNoGCRegion 方法来暂时禁用GC,以确保在关键代码段中不会发生GC。大对象(大于85,000字节)会被分配到大对象堆(LOH),LOH的回收代价较高。尽量避免频繁分配大对象。尽量减少对象的分配和释放,特别是短生命周期的对象。优化垃圾回收(GC)的性能可以显著提高应用程序的响应速度和整体性能。通过这些优化策略,你可以显著提高应用程序的GC性能,减少内存管理对应用程序性能的影响。对象池可以重用对象,减少对象的分配和释放,从而减轻GC的负担。

2024-08-30 14:49:01 585

原创 笔记:垃圾回收的代系简介

在编程和计算机科学中,"代"(generation)通常用于描述对象或资源的生命周期,特别是在垃圾回收(Garbage Collection, GC)中。不同的代表示对象在内存中的存活时间。

2024-08-30 14:38:53 487

原创 笔记:在WPF中如何注册控件级全局事件和应用程序级全局事件

1、通过这种方式可以解决部分特殊业务,如上述示例中,可以注册控件内所有按钮点击事件而不需要对每个按钮单独做处理;2、不仅仅局限Button.Click事件,任何路由事件和附加事件均可通过上述方式实现;3、可以实现没有暴露出来的鼠标,键盘,触摸板等应用附加事件定义的功能进行注册ItmsControl没有暴露GotMouseCapture事件,可以通过Mouse.GotMouseCapture去注册该事件。

2024-08-13 13:04:18 1047 4

原创 笔记:在WPF中OverridesDefaultStyle属性如何使用

当你希望完全自定义控件的外观,而不希望继承任何默认样式时,可以将 OverridesDefaultStyle 设置为 True。•。

2024-08-12 11:33:15 864

原创 笔记:简单介绍WPF中RenderTransform,LayoutTransform, VisualTransform区别

在 WPF 中,RenderTransform、LayoutTransform 和 VisualTransform 是用于对控件进行变换的属性,他们的主要区别是什么,如何选用合适的Transform,本文简要介绍。它们的主要区别在于应用变换的时机和影响范围。

2024-08-09 11:46:42 869

原创 笔记:简单介绍WPF中视觉树和逻辑树的区别和联系

在 WPF 中,视觉树(Visual Tree)和逻辑树(Logical Tree)是两个重要的概念,它们在元素的组织和渲染方面起着不同的作用。理解它们的区别和联系有助于更好地设计和调试 WPF 应用程序。

2024-08-08 15:51:37 1002

原创 示例:WPF中DataTemplateKey如何使用

在 WPF 中,DataTemplateKey 通常用于在资源字典中定义和引用数据模板。通过使用 DataTemplateKey,你可以在不同的控件中重用相同的数据模板。以下是如何在你的 MainWindow.xaml 文件中使用 DataTemplateKey 的示例。

2024-08-08 15:33:05 772

原创 示例:在ML.NET中应用Model Builder模型生成器构建图片对象检测模型

以上步骤展示了如何使用 ML.NET 的 Model Builder 创建对象检测模型,并在项目中使用生成的模型进行对象检测。通过这种方式,你可以快速构建和部署对象检测模型。本文主要演示使用过程,采用更准、更多的数据源、应用更精确的标记方式可以提高准确率。

2024-08-05 15:24:10 1040 1

原创 示例:在ML.NET中应用Model Builder模型生成器构建图片分类模型

Model Builder 是 Microsoft 提供的一个用于在 Visual Studio 中构建、训练和部署机器学习模型的工具。它是 ML.NET 的一部分,旨在简化机器学习模型的创建过程,使开发人员无需深入了解机器学习的复杂细节即可构建和使用模型。3. 多种任务:支持分类、回归、聚类、推荐系统、异常检测、自然语言处理和图像处理等任务。点击浏览图片选择一张图片,此时会应用训练好的模型对该图像进行分类,并输出分类结果。• 选择你要解决的机器学习任务,例如分类、回归、推荐系统等。

2024-07-31 11:33:56 938

原创 示例:演示如何使用系统自带System.ComponentModel.LicenseProvider 许可模块

添加LicenseProvider特性,类型设置为自带LicFileLicenseProvider,使用LicenseManager.Validate进行验证System.Diagnostics.Debug.WriteLine("许可验证成功");在窗口添加程序/// 自定义LicFileLicenseProvider/// 检查密钥是否有效/// 获取组件实例的许可证并确定其是否有效。

2024-07-26 11:50:22 667

原创 示例:WPF中如何处理TabControl页面绑定ItemsSource切换TabItem时UI数据没有持久保存的问题

TabItem Header="TabControl页面数据没有缓存">Width="5"</Grid></TabItem>运行效果如下:可以看到,Binding到后台数据的内容可以持久化保存,但是没有Binding(左侧的TextBox)或者UI上的元素(GridSplitter)的位置没有持久化保存。

2024-07-25 16:02:00 1005

原创 笔记:Enum中FlagsAttribute特性的用法

Flags]None = 0, // 表示无权限Read = 1, // 2^0, 单个权限Write = 2, // 2^1, 单个权限Execute = 4, // 2^2, 单个权限ReadWrite = Read | Write, // 组合权限All = Read | Write | Execute // 所有权限FileAccess枚举使用[Flags]属性,表示可以组合多个值。ReadWrite和All是使用按位或运算符组合其他值的示例。

2024-07-18 11:09:13 606

原创 示例:WPF中应用TreeView制作的树形拓扑结构自定义控件TreeLayoutBox

横向拓扑纵向拓扑。

2024-07-17 12:20:23 795

原创 示例:在WPF ListBox中,ScrollViewer.CanContentScroll=“False“破坏虚拟化如何解决

这种模式下,如果你的 ScrollViewer 包含了一个虚拟化面板(如 VirtualizingStackPanel),它可以启用 UI 虚拟化,这是一种性能优化技术,只渲染可见项,从而提高大量数据展示的性能。如果你需要展示大量数据,并且关心性能,应该选择 True,并确保使用支持虚拟化的面板,如 VirtualizingStackPanel。这提供了更平滑的滚动体验,但是会渲染所有的项,包括那些不在视图中的项,这可能会对性能产生负面影响,特别是在项数量很多的情况下。

2024-07-16 22:33:07 1188

原创 笔记:如何使用Microsoft.Extensions.Options

它提供了一种强类型的方式来读取和绑定配置数据(例如来自 appsettings.json 文件、环境变量或其他配置源的数据),并将其注入到应用程序中。Microsoft.Extensions.Options 提供了一种简单而强大的方式来管理和访问应用程序的配置数据。通过使用强类型的配置类和依赖注入,你可以轻松地将配置数据集成到你的应用程序中,同时保持代码的清晰和可维护性。当你注册了 T 类型的配置数据后,可以通过依赖注入在应用程序的其他部分访问这些数据。它在每个请求时提供配置数据的新快照。

2024-07-12 11:13:26 668

原创 笔记:运行时动态更改Ioc服务的实现

在 .NET Core 中,一旦服务被注册到依赖注入(DI)容器中,它们的实现就被固定下来了,不能在运行时直接更改。但是,你可以通过一些设计模式和技术来实现在运行时动态更改服务的实现。在这些方法中,工厂模式提供了最直接的方式来在运行时动态更改服务的实现,而策略模式和代理模式提供了更灵活的结构来根据运行时条件选择不同的行为或实现。这个工厂本身可以是一个接口,然后在运行时根据条件来创建并返回具体的服务实现。你可以定义一个策略接口,然后为不同的场景实现不同的策略。你可以在代理类中动态地选择或更改底层服务的实现。

2024-07-12 10:59:32 552

原创 笔记:在Entity Framework Core 中,常用Attribute有哪些

这些属性提供了一种声明性的方式来指定如何将类和属性映射到数据库表和列。指定一个属性作为并发检查的令牌。在EF Core 5.0及更高版本中,用于指定一个属性或属性组合上的索引。这通常用于乐观并发控制。指定一个属性是必需的,对应的列将是非空的(NOT NULL)。指定属性的值是由数据库自动生成的。指定属性映射到的列的名称、数据类型和(可选的)顺序。指定实体映射到的数据库表的名称和(可选的)架构。指定字符串或数组属性的最大和最小长度。指定数值属性的最小值和最大值。指定一个属性作为实体的主键。

2024-07-11 17:45:38 315

原创 笔记:在Entity Framework Core中使用乐观并发控制来处理数据更新的冲突

你可以通过在实体类的属性上使用[ConcurrencyCheck]属性或使用Fluent API的.IsConcurrencyToken()方法来定义并发令牌。set;set;

2024-07-11 17:32:22 610

原创 笔记:在Entity Framework Core中如何处理多线程操作DbContext

在使用Entity Framework Core (EF Core) 进行多线程操作时,需要特别注意,因为DbContext类并不是线程安全的。这样,每个请求都会获得一个新的DbContext实例,而在后台任务或其他多线程场景中,你可以创建一个新的作用域来获取新的DbContext实例。虽然这不是直接解决多线程问题的方法,但通过使用异步方法,你可以避免阻塞线程,从而更有效地利用资源。通过为每个线程或作用域创建新的DbContext实例,你可以确保数据操作的安全性和效率。• 在并发高的场景下,考虑。

2024-07-11 17:26:37 1013

原创 笔记:在Entity Framework Core中使用DeleteBehavior配置外键级联删除

DeleteBehavior.Cascade是DeleteBehavior枚举的一个选项,它指定当删除主实体时,所有具有外键引用的相关实体也将被自动删除。使用DeleteBehavior.Cascade可以确保数据的引用完整性,防止数据库中出现悬挂的外键引用。但是,它也需要谨慎使用,因为它会导致所有相关实体的删除,这可能不总是预期的行为。总之,DeleteBehavior.Cascade提供了一种方便的方式来维护数据库中的引用完整性,但在使用时应该考虑到其对数据和性能的潜在影响。

2024-07-11 17:07:56 436

原创 笔记:使用Microsoft.EntityFrameworkCore.Proxies做数据库延迟加载

Microsoft.EntityFrameworkCore.Proxies 是一个Entity Framework Core的扩展包,它提供了对延迟加载的支持。延迟加载是一种ORM(对象关系映射)行为,允许在首次访问导航属性时,自动从数据库加载相关的实体。这意味着,直到你实际需要访问关联的实体时,EF Core不会查询这些实体。

2024-07-11 16:57:41 1562

icon png图标集合

包含很多ico 和png的资源,可以根据项目直接应用图标资源

2018-10-18

剪贴板记录工具

记录剪贴板记录的工具,目前自定义分了9个标签,后续会增加根据配置生成标签

2018-10-18

Window辅助工具

类似音速启动的快捷工具,通过工具可以添加快捷方式,自动浏览收藏夹和系统目录等等

2018-10-18

摄像头控制

2016-08-13

反编译工具

2016-08-13

空空如也

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

TA关注的人

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