自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

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

2024-08-06 23:32:53 1109

原创 演示:【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 1346

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

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

2024-06-17 11:20:13 1330

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

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

2020-10-17 23:34:51 8298 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 4640 8

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

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

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

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

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

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

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

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

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

原创 笔记:RenderTargetBitmap和VisualBrush功能和性能对比

在 WPF 中,RenderTargetBitmap 和 VisualBrush 都可以用于渲染和缓存图像,但它们在性能和使用场景上有所不同。以下是对这两者的详细介绍和性能对比。适用于静态图像缓存和不频繁更新的场景,渲染性能高但内存使用较大。适用于动态内容和频繁更新的场景,内存使用较低但渲染性能较低。根据具体的使用场景选择合适的技术,可以在 WPF 中实现高效的图像渲染和缓存。

2024-09-29 12:40:45 965

原创 演示:基于WPF的DrawingVisual开发的频谱图和律动图

1、使用轻量的绘图方式,比如:DrawingVisual(可以应用硬件加速渲染);2、尽量减少数据量,越少的数据绘制性能越高;3、将绘制线程和更新数据线程分开,绘制线程中不要写太多逻辑尽量简单;4、显示的范围尽量不要太大,越小的屏幕范围性能越高;5、条件允许尽量提高硬件环境,最主要提高GPU环境;6、Visual Studio环境和Debug环境都会影响绘制性能,可以打包或生成Release测试最终性能;

2024-09-29 00:04:32 1392

原创 笔记:将WPF中可视化元素(Visual)保存为图像,如PNG,JPEG或BMP的方法简介

是 WPF 中用于将图像数据编码为特定格式的基类。它提供了将 BitmapSource 对象保存为各种图像格式(如 PNG、JPEG、BMP 等)的功能。PngBitmapEncoder 是 BitmapEncoder 的一个具体实现,用于将图像数据编码为 PNG 格式。是 WPF 中用于将图像数据编码为 PNG 格式的类。它属于 System.Windows.Media.Imaging 命名空间。使用 PngBitmapEncoder 可以将 BitmapSource 对象保存为 PNG 文件。

2024-09-21 16:00:52 942

原创 笔记:DrawingContext和GDI+对比简介

•性能:DrawingContext 使用硬件加速,性能通常优于 GDI+,特别是在需要高效绘制大量图形对象的场景。•DrawingContext 适合矢量图形,GDI+ 适合位图图形。•DrawingContext 与 WPF 集成更好,支持数据绑定、动画等功能;GDI+ 更适合 Windows Forms 应用。•GDI+ 在 Windows 平台上有更广泛的支持,而 DrawingContext 主要用于 WPF 应用。

2024-09-21 15:15:41 1162

原创 演示:基于WPF的DrawingVisual开发的Chart图表和表格绘制

VS2022,NET7 模拟钻井流体和流速 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-21 00:27:46 1481

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

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

2024-09-18 23:59:17 1345

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

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

2024-09-18 17:36:39 951

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

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

2024-09-14 23:32:22 1028

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

​​​​​​​。

2024-09-14 23:15:39 1456

原创 演示:基于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 803

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

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

2024-09-02 17:34:42 1169

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

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

2024-09-02 17:14:17 643

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

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

2024-09-02 17:02:14 1272

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

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

2024-08-30 23:32:16 1124

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

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

2024-08-30 22:13:58 982

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

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

2024-08-30 15:06:21 950

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

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

2024-08-30 14:49:01 593

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

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

2024-08-30 14:38:53 490

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

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

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

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

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

2024-08-12 11:33:15 888

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

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

2024-08-09 11:46:42 896

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

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

2024-08-08 15:51:37 1018

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

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

2024-08-08 15:33:05 776

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

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

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

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

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

2024-07-31 11:33:56 956

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

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

2024-07-26 11:50:22 675

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

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

2024-07-25 16:02:00 1024

原创 笔记: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 629

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

横向拓扑纵向拓扑。

2024-07-17 12:20:23 804

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

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

2024-07-16 22:33:07 1199

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

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

2024-07-12 11:13:26 675

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

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

2024-07-12 10:59:32 552

icon png图标集合

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

2018-10-18

剪贴板记录工具

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

2018-10-18

Window辅助工具

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

2018-10-18

摄像头控制

2016-08-13

反编译工具

2016-08-13

空空如也

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

TA关注的人

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