WPF 解决 SelectionTextBrush 设置无效问题
2024/10/14 16:00:21

如以下的代码,设置被选择的文本的字符颜色为红色GridTextBox Text="Test" FontSize="100" ionTextBrush="Red"Grid运行项目,你将发现 ionTextBrush 属性设置是完全没有效果的,被选择的文本依然是黑色的 可以在 App 构造函数添加开关让 ionTextBrush 属性生效,代码如下public App(){AppContext.SetSwitch("Switch.System.Windows.Controls.Text.UseAdnerFTe

在WinForm中使用全局异常捕获处理
2024/10/14 16:00:19

在WinFm中使用全局异常捕获处理 在WinFm应用程序中,全局异常捕获是确保程序稳定性的关键。通过在Program类的Main方法中设置全局异常处理,可以有效地捕获并处理未预见的异常,从而避免程序崩溃。 注册全局异常事件 [STAThread] static void Main() { 注册全局异常捕获事件Application.ThreadException += new System.Threading.ThreadExceptionEventHler(Application_ThreadExcep

dotnet 记在 Linux 上某些文件的文件长度为 0 但是存在内容
2024/10/14 16:00:19

逻辑非常简单,本文将使用读取 edid 文件作为例子,以下是我的 edid 文件所在的路径 sysclassdrmcard0DP2edid使用 ls lh 命令获取 sysclassdrmcard0DP2 文件夹里面的所有文件,可以看到大概如下的输出内容 lrwxrwxrwx 1 root root 0 4月 22 09:58 device ....card0 rrr 1 root root 4.0K 4月 22 09:58 dpms rrr 1 root root 0 4月 22 0

[STAThread]特性
2024/10/14 16:00:18

[STAThread] 特性用于需要与 COM 组件交互的应用程序,尤其是依赖单线程模型(如 Windows Fms 应用程序)的组件。在 STA 模式下,线程拥有自己的消息循环,这对于处理用户界面和某些 COM 组件是必要的。 [STAThread] static void Main(string[] args) { 应用程序的入口代码 }定义:特性是 C# 中的声明性信息,应用于程序元素(如类、方法、属性等),用于提供额外信息或配置。STAThread:简写为 System.STAThreadAttr

WPF 已知问题 监听 WMI 事件导致触摸失效
2024/10/14 15:59:36

此问题仅在 . Ce 版本复现,在 . Framewk 框架下能正常工作 复现步骤如下:安装 System.Management 库用于使用 WqlEventQuery 监听 WMI 变更 监听 TouchDown 事件输出断点信息复现代码如下public MainWindow(){InitializeComponent()AppDomain.CurrentDomain.FirstChanceException += (sender args) ={Debug.WriteLine(args.Excepti

WinFrom项目结构
2024/10/14 15:59:35

示例项目结构 在 Visual Studio 中创建一个 WinFms 应用程序后,项目结构如下所示: MyWinFmsApp │ ├───Properties │ └───Settings.settings │ ├───bin │ ├───Debug │ └───Release │ ├───obj │ ├───Debug │ └───Release │ ├───Fm1.cs ├───Fm1.Designer.cs ├───Fm1.resx ├───Program.cs ├───App

.NET 8 微软免费开源的 Blazor UI 组件库
2024/10/14 15:59:30

前言 . 8 的发布,微软推出了官方免费且开源的 Blaz UI 组件库 —— Fluent UI Blaz。 组件库提供了Web应用程序所需的工具,确保应用程序能够与 Microsoft 产品保持一致的外观和感觉。Fluent UI Blaz 不仅包含了对微软官方 Fluent UI Web Components 的封装,还提供了额外的组件和功能,简化开发流程,增强用户体验。 本文将介绍 Fluent UI Blaz 的特点和优势,以及帮助大家如何快速上手,利用这一强大的工具集来提升 Blaz 项目。

第20篇 window系统安装Redis流程
2024/10/14 15:59:28

1.下载 Redis f Windows Redis 官方并没有提供 Windows 版本的安装包,但你可以使用 Microsoft 维护的 Windows 版本的 Redis。你可以从以下链接下载 Redis f Windows:2.安装 Redis 运行安装程序: 双击下载的 .msi 文件,启动安装程序。 按照安装向导的提示进行安装。这里记得勾选等待安装完成。3.配置 Redis: 在安装过程中,你可以选择 Redis 的安装路径和其他配置选项。 默认情况下,Redis 会安装在 C:\Progra

通过C#在Word中插入或删除分节符
2024/10/14 15:59:27

在Wd中,分节符是一种强大的工具,用于将文档分成不同的部分,每个部分可以有独立的页面设置,如页边距、纸张方向、页眉和页脚等。正确使用分节符可以极大地提升文档的组织性和专业性,特别是在长文档中,需要在不同部分应用不同的样式时。本文将介绍如何使用一个免费的.库通过C#实现插入或删除Wd分节符。 免费. Wd库 Free Spire.Doc f . 是一款免费的用于对 Wd 文档进行操作的 .类库,适用于商业或个人用途(但有一定页数限制)。 安装:我们可以直接在Visual Studio中通过NuGet搜索

CRUD最佳实践PasteForm及项目模板的制作视频,让重复的CRUD更加简单直接[附带源码和视频](三)
2024/10/14 15:59:16

关说不练假把式,在上一,二篇中介绍了我心目中的CRUD的样子基于之前的理念,我开发了一个命名为PasteTemplate的项目,这个项目呢后续会转化成项目模板,转化成项目模板后,后续需要开发新的项目就可以基于这个模板创建,这样就不要copy一个旧的项目,然后删删删,改改改,重命名等操作了 强迫症,一个项目的名字就得统一,心里才舒服 那么本次作者就带来了实物,本次主要介绍管理端的内容,我们一起来看看这个是后台,目前使用的是HTML原生写的,如果说使用VUE的话,会更简单,这个后续看情况推出! 先用原生的原因

[WPF]数据绑定时为何会出现StringFormat失效
2024/8/30 14:50:27

在数据绑定过程中,我们经常会使用StringFmat对要显示的数据进行格式化,以便获得更为直观的展示效果,但在某些情况下格式化操作并未生效,例如 Button的 Content属性以及ToolTip属性绑定数据进行StringFmat时是无效的。首先回顾一下StringFmat的基本用法。 StringFmat的用法 StringFmat是 BindingBase的属性,指定如果绑定值显示为字符串,应如何设置该绑定的格式。因此,BindingBase 的三个子类:Binding、MultiBinding、

.NET 开源报表神器 Seal-Report
2024/8/30 14:50:25

前言 SealRept 是一款. 开源报表工具,拥有 1.4K Star。它提供了一个完整的框架,使用 C# 编写,最新的版本采用的是 . 8.0 。 它能够高效地从各种数据库或 NoSQL 数据源生成日常报表,并支持执行复杂的报表任务。 其简单易用的安装过程和直观的设计界面,我们能够在几分钟内创建并发布报表,同时还支持二次开发。 通过分享这个项目,希望能够帮助大家简化报表设计的流程,提高工作效率。 项目介绍 SealRept 它提供了简单且直观的报表设计功能,极大地减少了复杂的配置需求。 即使不具备编程

基于surging 如何利用peerjs进行语音视频通话
2024/8/30 14:50:24

一 、 概述 PeerJS 是一个基于浏览器WebRTC功能实现的js功能包简化了WebrRTC的开发过程,对底层的细节做了封装,直接调用API即可再配合surging 协议组件化从而做到稳定,高效可扩展的微服务,再利用RtmpToWebrtc 引擎组件可以做到不仅可以利用httpflv 观看rtmp推流直播,还可以采用基于 Webrtc的peerjs 进行观看,那么今天要讲的是如何结合开发语音视频通话功能。放到手机和电脑上都可以实现语音视频通话。 一键运行打包成品下载:htt

dotnet C# 如何在顶级语句定义属性
2024/8/30 14:50:23

随着 dot 6 开始,现在的 C# dot 可以使用顶级语句非常方便创建一个小型项目,包含的代码也特别少。本文将和大家介绍如何在顶级语句里面定义属性如以下代码是传统的控制台应用程序的代码 using Systemnamespace Application {class Program{static void Main(string[] args){Console.WriteLine("Hello Wld!")}} }可以看到即使是一个简单的应用,也需要不少的代码。在 dot 6 开始,咱可以使用非常方便

WPF 记一个特别简单的点集滤波平滑方法
2024/8/30 14:50:21

本文记录我想要解决自己从窗口接收 WM_Pointer 消息时,获取到的触摸点不平滑的问题而使用的特别简单且性能垃圾的点集滤波平滑方法我的本质错误是使用 WM_POINTER 消息的 ptPixelLocationRaw 字段而不是 ptHimetricLocationRaw 字段 由于后面在 walterlv 的帮助之下修复了触摸点收集,附带他也给 Avalonia 做了贡献,详细请看 https:github.comAvaloniaUIAvaloniapull16850 故事的开始是我用 Avalon

.NET 摄像头采集
2024/8/30 14:50:20

本文主要介绍摄像头(相机)如何采集数据,用于类似摄像头本地显示软件,以及流媒体数据传输场景如传屏、视讯会议等。 摄像头采集有多种方案,如AFge.、WPFMediaKit、OpenCvSharp、EmguCv、DirectShow.、MediaCaptre(UWP),网上一些文章以及github已经有很多介绍,这里总结、确认技术选型给大家一个参考 1. AFge. AFge视频库是基于DirectShow技术开发的,提供了捕捉、处理和显示视频流接口,以及图像丰富的图像处理功能,如滤镜、特征提取和物体检测。

.NET 8 高并发微服务电商系统实战
2024/8/30 14:50:15

前言 嗨,大家好!推荐一个基于 . 8 的高并发微服务电商系统,涵盖了商品、订单、会员、服务、财务等50多种实用功能。 项目不仅使用了 . 8 的最新特性,还集成了AutoFac、DotLiquid、HangFire、Nlog、Jwt、LayUIAdmin、SqlSugar、MySQL、SqlServer 和 Redis 等一系列强大的技术栈,以确保系统的高并发能力和高可用性。 希望通过分享这个项目,能够帮助大家快速掌握 . 8 微服务开发的核心技能,并在日常工作中应用这些知识。 项目介绍 CeShop

不可不知的WPF画笔(Brush)
2024/8/30 14:50:14

在WPF中,屏幕上的所有内容,都是通过画笔(Brush)画上去的。如按钮的背景色,边框,文本框的前景和形状填充。借助画笔,可以绘制页面上的所有UI对象。不同画笔具有不同类型的输出( 如:某些画笔使用纯色绘制区域,其他画笔使用渐变、图案、图像或绘图)。Brush位于System.Windows.Media命名空间,Brush是一个abstract修饰的抽象类,所以必须使用其派生类。 纯色画笔(SolidColBrush) SolidColBrush使用纯Col绘制区域,有多种方法可以制定纯色画笔的颜色

Prism:框架介绍与安装
2024/8/30 14:50:13

Prism:框架介绍与安装 什么是Prism Prism是一个用于在 WPF、Xamarin Fm、Uno 平台和 WinUI 中构建松散耦合、可维护和可测试的 XAML 应用程序框架 Github https:github.comPrismLibraryPrism NuGet https:www.nuget.gpackagesPrism.WpfVS2022拓展功能:MVVM、依赖注入、区域、导航、模块、对话框、发布与订阅等功能。 手动创建 1.创建一个.Framewk程序或者.Ce应用程序 2.在Nug

基于surging的木舟IOT平台如何添加网络组件
2024/8/30 14:50:10

一 、 概述 为了弥补代码的遗失,木舟IOT平台正在加班加点进行研发,后面不只是针对于IOT设备接入上报告警,视频管理,组态数据可视化大屏,后面还会有快速搭建微服务平台,利用surging.cli工具根据数据库表生成微服务,中间服务,能让程序员快速完成BOSS交给的任务,从而在这个内卷的社会能占有一席之地。这些都是没有完成任务的空话,现在发此篇的目的是作者有能力开发出优秀的IOT平台,先介绍一个比较突出的功能,就是可以基于共享或者独立配置添加网络组件, 下面来介绍一下如何添加网络组件。

WPF 如何利用Blend给Button添加波纹效果
2024/8/30 14:50:08

先看一下效果吧:如果不会写动画或者懒得写动画,就直接交给Blend来做吧 其实Blend操作起来很简单,有点类似于在操作PS,我们只需要设置关键帧,鼠标点来点去就可以了,Blend会自动帮我们生成我们想要的动画效果. 第一步:要创建一个空的WPF项目 第二步:右键我们的项目,在最下方有一个,在Blend中设计 如果没有这个,应该是你在安装vs的时候把它勾掉了,默认是勾选的,没有的话也可以重新安装回来 点一下上方导航条的 工具栏安装一下就可以了 第三步:打开的Blend项目操作页面和WPF的页面几乎是一模一

实用接地气的 .NET 微服务框架
2024/8/30 14:50:06

前言 微服务架构已经成为搭建高效、可扩展系统的关键技术之一,然而,现有许多微服务框架往往过于复杂,使得我们普通开发者难以快速上手并体验到微服务带了的便利。为了解决这一问题,于是作者精心打造了一款最接地气的 . 微服务框架,帮助我们轻松构建和管理微服务应用。 本框架不仅支持 Consul 服务注册与发现,还自带了一系列高级特性,包括配置中心、链路跟踪(APM)、服务网关等,极大地简化了微服务的开发和运维过程。 此外框架还实现了 Saga 分布式事务、RabbitMQ 事件总线等功能,确保系统能够高效处理复杂

HttpClient获取图片并保存到本地
2024/8/30 14:50:05

1. FileDownLoad.cs 本次测试使用HttpClient从网站下载图片并保存到本地,在FileDownLoad类中提供DownLoadInBackGround接口,供外部调用,封装具体的下载操作。 using System using System.Diagnostics using System.IO using System..Http using System.Threading.Tasksnamespace CSProject {public delegate void DownLo

.NET周刊【8月第4期 2024-08-25】
2024/8/30 14:50:04

国内文章 从控制台开始 关联 Win2D 和 WinUI 3 应用 https:www.cnblogs.comlindexip18378612 本文将告诉大家如何从最简单的控制台开始搭建,让 Win2D 和 WinUI 3 关联起来,让 Win2D 可以将内容渲染到 WinUI 3 应用上。 为何 Thread.Sleep 半毫秒和一毫秒等待时间差距如此之大 https:www.cnblogs.comlindexip18381792 本文记录我读 dot 的源代码了解到为什么调用 Thread.Sleep

Fins TCP协议理解及C Sharp实现思路
2024/8/30 14:50:03

假设本文中使用到设备的ip地址,用于后续内容的理解: 客户端(本机电脑 windows系统)IP: 192.168.1.101 服务端(PLC omron CJ2M系列)IP 和 端口号 : 192.168.1.10 : 9600 注意: ①本文中的 FINS TCP 报文都是以16进制(Hex)发送出去的,所以对应的转换也都会转成16进制的形式。 ②16进制Hexadecimal (Hex),10进制Decimal (Dec),8进制Octal (Oct),2进制Binary (Bin),下面是10

记一次 .NET某实验室自动进样系统 崩溃分析
2024/8/30 14:50:02

一:背景 1. 讲故事 前些天有位朋友在微信上联系到我,说他们的程序在客户那边崩掉了,让我帮忙看下怎么回事,dump也拿到了,那就上手分析吧。 二:WinDbg 分析 1. 哪里的崩溃 既然是程序的崩溃,自然是有原因的,皮裤套棉裤,必定有缘故,不是皮裤太薄就是棉裤没毛,用 !analyze v 观察下异常信息。0:107 !analyze vCONTEXT: (.ecxr) rax=0000005e0dc7c4a0 rbx=0000005e0dc7c400 rcx=0000005e0dc7c4a0 rd

.NET 开源实时监控系统
2024/8/30 14:50:01

前言 在平时的开发中随着我们系统应用不断地迭代变的复杂,对应用的实时监控变得越来越重要。实时监控不仅可以帮助我们快速定位问题,还能在出现问题时及时采取措施,减少业务中断的时间。 本文将介绍一个名为WatchDog的.开源实时应用监控系统,它可以帮助我们轻松实现对.应用的实时监控。 项目介绍 WatchDog是一个开源(MIT License)、免费的实时应用监控系统,专为ASP. Ce Web应用程序和API设计。我们可以实时记录和查看应用程序中的消息、事件、HTTP请求和响应,以及运行时捕获的异常。 一

网卡-热点搜索不到或者无法连接问题
2024/8/30 14:49:59

大屏Windows设置网卡开启热点后,经常收到反馈,手机端无法搜索到大屏热点、或者手机连接大屏热点失败 这类问题一般有以下几类情况: 1. 物理网卡IP与热点网卡IP相同 2. 热点网卡IP,非正常热点IP(192.168.137.X) 热点IP我们一般定为192.168.137.X,192.168.137.X是一个保留的IPv4地址范围。其中,X代表了特定设备在局域网中的唯一标识,通常是1到254之间的一个数字。 这个地址范围通常被用作局域网内部的私有IP地址,如WiFi热点或者一些家庭网络 设置此私有

读 dotnet 源代码 为何 Thread.Sleep 半毫秒和一毫秒等待时间差距如此之大
2024/8/30 14:49:59

本文记录我读 dot 的源代码了解到为什么调用 Thread.Sleep 的时候,传入的是不足一毫秒,如半毫秒时或 0.99 毫秒,与传入是一毫秒时,两者的等待时间差距非常大大概如下的代码,分别进行两次传入给 Thread.Sleep 不同等待时间的循环测试。其中一次传入的是 0.99 毫秒,一次传入的是 1 毫秒 using System.Diagnosticsvar stopwatch = Stopwatch.StartNew()f (int i = 0 i 1000 i++) {Thread.Sl

基于事件总线EventBus实现邮件推送功能
2024/8/30 14:49:58

有时候,有人给我的网站留了言,但是我必须要打开我的网站(https:www.xianplay.com)才知道,所以我便决定给网站增加一个邮件推送的功能,好让我第一时间知道。于是乎,按照我自己的思路,同时为了去学习了解rabbitmq以及EventBus概念,我便设计了一套邮件推送的功能,这里分享出来,可能方案不是很好,大家不喜勿喷。 什么是事件总线 事件总线是对发布订阅模式的一种实现。它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。