刷新
学习Source Generators之IncrementalValueProvider

博主头像 前面我们使用了IIncrementalGenerator来生成代码,接下来我们来详细了解下IIncrementalGenerator的核心部分IncrementalValueProvider。 介绍 IncrementalValueProvider是基于管道的模式,将我们需要的数据进行处理转换后传递 ...

WPF中封装一个自己的MessageBox

博主头像 前言 在WPF应用程序开发中,我们可以借助其强大灵活的设计能力打造出绚丽而富有创意的用户界面。然而,与这种高度定制化的界面相比,标准MessageBox却显得有些原始和古老。它的外观与现代、绚丽的应用界面格格不入,使得用户在交互中可能感到突兀或不符合预期。 本文将深入探讨如何在WPF中封装自定义Me ...

socket 接收数据时粘包处理 c# winform

博主头像 socket在接收数据时,经常会因为网络延迟、缓存区数据处理不及时等原因造成收到的数据是多个包黏在一起的情况。如下图所示 图中红色框部分是通讯的 心跳包 图中黄色框部分和未框选部分是 两包 数据包 所以可见此时缓存区里面同时存在了一个心跳包,两个数据包 如何分包(此处仅针对几个完整的数据包在一起的情 ...

WPF如何封装一个可扩展的Window

博主头像 前言 WPF中Window相信大家都很熟悉,有时我们有一些自定义需求默认Window是无法满足的,比如在标题栏上放一些自己东西,这个时候我们就需要写一个自己的Window,实现起来也很简单,只要给Window设置一个WindowChrome.WindowChrome附加属性就可以实现,WindowC ...

一个可以让你有更多时间摸鱼的WPF控件(二)

博主头像 前言 上文介绍了如何通过一个Form自定义控件来简化数据的录入,并自动实现数据校验,自动布局排列等功能。本文继续介绍如何优化表格控件的使用,缩减代码量,实现工作效率的提升。 一、功能实现 上文中分析了DataGrid跟ListView两种表格控件的优劣,在这里我们选择ListView来实现我们的表格 ...

NET Core使用Grpc通信(一):一元请求

博主头像 gRPC是一个现代的开源高性能远程过程调用(RPC)框架,它可以高效地连接数据中心内和跨数据中心的服务,支持负载平衡、跟踪、运行状况检查和身份验证。 gRPC通过使用 Protocol Buffers 作为数据传输格式,实现了在不同平台上的通信,并支持双向流和流式传输。RPC 是远程过程调用的缩写, ...

gRPC入门学习之旅(四)

gRPC是一个高性能、通用的开源远程过程调用(RPC)框架,基于底层HTTP/2协议标准和协议层Protobuf序列化协议开发,支持众多的开发语言,由Google开源。 gRPC 客户端和服务端可以在多种环境中运行和交互。你可以用Java创建一个 gRPC 服务端,用 Go、Python、C# 来创... ...

.NET分布式Orleans - 8 - 贪吃蛇项目实战(准备阶段)

博主头像 到目前为止,Orleans7的核心概念基本已经学完,我准备使用Orleans7做一个项目实战,来总结自己的学习效果。 项目效果 通过Orleans7来完成一个贪吃蛇游戏,要求如下: 可以多人在线玩 贪吃蛇可以上/下/左/右改方向 贪吃蛇吃完食物,身体长度+1 项目暂定架构 初步设想,此游戏包括一个O ...

.NET分布式Orleans - 7 - Streaming

博主头像 概念 在Orleans中,Streaming是一组API和功能集,它提供了一种构建、发布和消费数据流的方式。 这些流可以是任何类型的数据,从简单的消息到复杂的事件或数据记录。Streaming API允许你定义、发布和消费这些流,而无需关心底层的传输机制或数据存储。 每个流都有一个唯一的标识符,称为 ...

WPF实现placeholder效果

博主头像 概述:WPF中通过`Style`实现TextBox水印文本,使用`WatermarkTextBox`类及`ControlTemplate`。这个示例通过`VisualStateManager`在文本框失去焦点且内容为空时显示水印文本。通过`Watermark`属性简化水印文本设置,提高可维护性。 在 ...

浅谈WPF之属性系统

博主头像 在WPF开发中,经常听到各种属性,如:依赖属性,附加属性,CLR属性,那这些不同类型的属性,具体又有什么作用呢?今天以一些简单的小例子,简述一下WPF开发中,各种属性的相关概念和应用,仅供学习分享使用,如有不足之处,还请指正。 ...

文件名按数字排序,可以排序多组数字,尤其是99-333~~_222这种复杂数字组合的文件名或字符串

博主头像 这是我本人编写的一个排序算法,主要就是解决复杂多组数字组合的这种文件名或者字符串的排序,排序主要规则就是从前往后对每一组数据进行排序,效果及截图如下: 以下是使用方法: 第一步 搜索和安装我的Nuget包 搜索和安装zmjtool这个包,我写的,如下图: 第二步 使用HMSorter的Sort方法进 ...

掌握C#中异步魔法:同步方法如何优雅调用异步方法

博主头像 概述:上述C#示例演示了如何在同步方法中调用异步方法。通过使用`async`和`await`关键字,实现了同步方法对异步方法的调用。建议使用`await`而不是`Result`来避免潜在的死锁问题。这种模式在处理异步任务时能够提高代码的可读性和性能。 在C#中,从同步方法调用异步方法的过程涉及到使用 ...

可能是迄今为止最好用的WPF加载动画功能(没有之一)

博主头像 前言 当我们在开发应用程序时,用户体验往往是至关重要的一环。在应用程序加载大量数据或执行复杂操作时,为用户提供一个良好的加载体验变得至关重要。加载动画是其中一个有效的方式,它不仅能够告知用户应用程序正在进行工作,还能够缓解用户在等待过程中的焦虑感。 一.需求分析 开发一个加载动画比较常见的做法一般有 ...

记一次WPF的DataGrid绑定数据

博主头像 之前一直在用winform,但是感觉界面不好看,然后就自己在网上学习WPF。一开始看到DataGrid的时候,还以为它是DataGridView,然后用winform的方法绑定数据发现不行,在不断的查找之后,终于学会了怎么简单的绑定数据。 工具:VStudio2022 框架:.net framewo ...