[WPF]数据绑定时为何会出现StringFormat失效
在数据绑定过程中,我们经常会使用StringFmat对要显示的数据进行格式化,以便获得更为直观的展示效果,但在某些情况下格式化操作并未生效,例如 Button的 Content属性以及ToolTip属性绑定数据进行StringFmat时是无效的。首先回顾一下StringFmat的基本用法。 StringFmat的用法 StringFmat是 BindingBase的属性,指定如果绑定值显示为字符串,应如何设置该绑定的格式。因此,BindingBase 的三个子类:Binding、MultiBinding、
.NET 开源报表神器 Seal-Report
前言 SealRept 是一款. 开源报表工具,拥有 1.4K Star。它提供了一个完整的框架,使用 C# 编写,最新的版本采用的是 . 8.0 。 它能够高效地从各种数据库或 NoSQL 数据源生成日常报表,并支持执行复杂的报表任务。 其简单易用的安装过程和直观的设计界面,我们能够在几分钟内创建并发布报表,同时还支持二次开发。 通过分享这个项目,希望能够帮助大家简化报表设计的流程,提高工作效率。 项目介绍 SealRept 它提供了简单且直观的报表设计功能,极大地减少了复杂的配置需求。 即使不具备编程
基于surging 如何利用peerjs进行语音视频通话
一 、 概述 PeerJS 是一个基于浏览器WebRTC功能实现的js功能包简化了WebrRTC的开发过程,对底层的细节做了封装,直接调用API即可再配合surging 协议组件化从而做到稳定,高效可扩展的微服务,再利用RtmpToWebrtc 引擎组件可以做到不仅可以利用httpflv 观看rtmp推流直播,还可以采用基于 Webrtc的peerjs 进行观看,那么今天要讲的是如何结合开发语音视频通话功能。放到手机和电脑上都可以实现语音视频通话。 一键运行打包成品下载:htt
dotnet C# 如何在顶级语句定义属性
随着 dot 6 开始,现在的 C# dot 可以使用顶级语句非常方便创建一个小型项目,包含的代码也特别少。本文将和大家介绍如何在顶级语句里面定义属性如以下代码是传统的控制台应用程序的代码 using Systemnamespace Application {class Program{static void Main(string[] args){Console.WriteLine("Hello Wld!")}} }可以看到即使是一个简单的应用,也需要不少的代码。在 dot 6 开始,咱可以使用非常方便
WPF 记一个特别简单的点集滤波平滑方法
本文记录我想要解决自己从窗口接收 WM_Pointer 消息时,获取到的触摸点不平滑的问题而使用的特别简单且性能垃圾的点集滤波平滑方法我的本质错误是使用 WM_POINTER 消息的 ptPixelLocationRaw 字段而不是 ptHimetricLocationRaw 字段 由于后面在 walterlv 的帮助之下修复了触摸点收集,附带他也给 Avalonia 做了贡献,详细请看 https:github.comAvaloniaUIAvaloniapull16850 故事的开始是我用 Avalon
.NET 摄像头采集
本文主要介绍摄像头(相机)如何采集数据,用于类似摄像头本地显示软件,以及流媒体数据传输场景如传屏、视讯会议等。 摄像头采集有多种方案,如AFge.、WPFMediaKit、OpenCvSharp、EmguCv、DirectShow.、MediaCaptre(UWP),网上一些文章以及github已经有很多介绍,这里总结、确认技术选型给大家一个参考 1. AFge. AFge视频库是基于DirectShow技术开发的,提供了捕捉、处理和显示视频流接口,以及图像丰富的图像处理功能,如滤镜、特征提取和物体检测。
.NET 8 高并发微服务电商系统实战
前言 嗨,大家好!推荐一个基于 . 8 的高并发微服务电商系统,涵盖了商品、订单、会员、服务、财务等50多种实用功能。 项目不仅使用了 . 8 的最新特性,还集成了AutoFac、DotLiquid、HangFire、Nlog、Jwt、LayUIAdmin、SqlSugar、MySQL、SqlServer 和 Redis 等一系列强大的技术栈,以确保系统的高并发能力和高可用性。 希望通过分享这个项目,能够帮助大家快速掌握 . 8 微服务开发的核心技能,并在日常工作中应用这些知识。 项目介绍 CeShop
不可不知的WPF画笔(Brush)
在WPF中,屏幕上的所有内容,都是通过画笔(Brush)画上去的。如按钮的背景色,边框,文本框的前景和形状填充。借助画笔,可以绘制页面上的所有UI对象。不同画笔具有不同类型的输出( 如:某些画笔使用纯色绘制区域,其他画笔使用渐变、图案、图像或绘图)。Brush位于System.Windows.Media命名空间,Brush是一个abstract修饰的抽象类,所以必须使用其派生类。 纯色画笔(SolidColBrush) SolidColBrush使用纯Col绘制区域,有多种方法可以制定纯色画笔的颜色
Prism:框架介绍与安装
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平台如何添加网络组件
一 、 概述 为了弥补代码的遗失,木舟IOT平台正在加班加点进行研发,后面不只是针对于IOT设备接入上报告警,视频管理,组态数据可视化大屏,后面还会有快速搭建微服务平台,利用surging.cli工具根据数据库表生成微服务,中间服务,能让程序员快速完成BOSS交给的任务,从而在这个内卷的社会能占有一席之地。这些都是没有完成任务的空话,现在发此篇的目的是作者有能力开发出优秀的IOT平台,先介绍一个比较突出的功能,就是可以基于共享或者独立配置添加网络组件, 下面来介绍一下如何添加网络组件。
WPF 如何利用Blend给Button添加波纹效果
先看一下效果吧:如果不会写动画或者懒得写动画,就直接交给Blend来做吧 其实Blend操作起来很简单,有点类似于在操作PS,我们只需要设置关键帧,鼠标点来点去就可以了,Blend会自动帮我们生成我们想要的动画效果. 第一步:要创建一个空的WPF项目 第二步:右键我们的项目,在最下方有一个,在Blend中设计 如果没有这个,应该是你在安装vs的时候把它勾掉了,默认是勾选的,没有的话也可以重新安装回来 点一下上方导航条的 工具栏安装一下就可以了 第三步:打开的Blend项目操作页面和WPF的页面几乎是一模一
实用接地气的 .NET 微服务框架
前言 微服务架构已经成为搭建高效、可扩展系统的关键技术之一,然而,现有许多微服务框架往往过于复杂,使得我们普通开发者难以快速上手并体验到微服务带了的便利。为了解决这一问题,于是作者精心打造了一款最接地气的 . 微服务框架,帮助我们轻松构建和管理微服务应用。 本框架不仅支持 Consul 服务注册与发现,还自带了一系列高级特性,包括配置中心、链路跟踪(APM)、服务网关等,极大地简化了微服务的开发和运维过程。 此外框架还实现了 Saga 分布式事务、RabbitMQ 事件总线等功能,确保系统能够高效处理复杂
HttpClient获取图片并保存到本地
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】
国内文章 从控制台开始 关联 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实现思路
假设本文中使用到设备的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某实验室自动进样系统 崩溃分析
一:背景 1. 讲故事 前些天有位朋友在微信上联系到我,说他们的程序在客户那边崩掉了,让我帮忙看下怎么回事,dump也拿到了,那就上手分析吧。 二:WinDbg 分析 1. 哪里的崩溃 既然是程序的崩溃,自然是有原因的,皮裤套棉裤,必定有缘故,不是皮裤太薄就是棉裤没毛,用 !analyze v 观察下异常信息。0:107 !analyze vCONTEXT: (.ecxr) rax=0000005e0dc7c4a0 rbx=0000005e0dc7c400 rcx=0000005e0dc7c4a0 rd
.NET 开源实时监控系统
前言 在平时的开发中随着我们系统应用不断地迭代变的复杂,对应用的实时监控变得越来越重要。实时监控不仅可以帮助我们快速定位问题,还能在出现问题时及时采取措施,减少业务中断的时间。 本文将介绍一个名为WatchDog的.开源实时应用监控系统,它可以帮助我们轻松实现对.应用的实时监控。 项目介绍 WatchDog是一个开源(MIT License)、免费的实时应用监控系统,专为ASP. Ce Web应用程序和API设计。我们可以实时记录和查看应用程序中的消息、事件、HTTP请求和响应,以及运行时捕获的异常。 一
读 dotnet 源代码 为何 Thread.Sleep 半毫秒和一毫秒等待时间差距如此之大
本文记录我读 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
网卡-热点搜索不到或者无法连接问题
大屏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热点或者一些家庭网络 设置此私有
基于事件总线EventBus实现邮件推送功能
有时候,有人给我的网站留了言,但是我必须要打开我的网站(https:www.xianplay.com)才知道,所以我便决定给网站增加一个邮件推送的功能,好让我第一时间知道。于是乎,按照我自己的思路,同时为了去学习了解rabbitmq以及EventBus概念,我便设计了一套邮件推送的功能,这里分享出来,可能方案不是很好,大家不喜勿喷。 什么是事件总线 事件总线是对发布订阅模式的一种实现。它是一种集中式事件处理机制,允许不同的组件之间进行彼此通信而又不需要相互依赖,达到一种解耦的目的。
你是否还在为匹配数据和过滤数据而忧虑
一、前言在开发中,你是否还在为匹配机制随时修改、过滤条件经常变动而忧虑。如果有那么请你看下去。 二、插件推荐System.Linq.Dynamic.Ce 从命名上看,就知道它是一款动态查询的核心库。 它的主要作用有那些?能帮助开发人员解决哪些痛点? 接下来给大家逐步介绍。 三、使用System.Linq.Dynamic.Ce 我们常使用的功能有以下2点1、动态的匹配机制。创建模型 summary 学生模型 summary public class StudentModel { summary 姓
Gradio.NET 支持 .NET 8 简化 Web 应用开发
前言 Gradio. 是 Gradio 在 . 平台上的移植版本。Gradio 是一个开源的 Python 包,用于快速构建机器学习模型、API 或任意 Python 函数的演示或 Web 应用程序。 Gradio. 继承了 Gradio 的核心理念,以. 开发习惯和熟悉的方式进行Web应用开发,其主要特点包括:易用性:只需几行 . 代码即可创建功能完善的用户界面。灵活性:支持多种类型的输入和输出,包括文本、图像、音频等。一键分享:轻松生成访问链接,方便进行测试和使用。集成支持:能够无缝集成到主流的 .
.NET周刊【8月第3期 2024-08-18】
国内文章 Roslyn 简单实现代码智能提示补全功能 https:www.cnblogs.comlindexip18365261 相信有很多伙伴热衷于编写 IDE 应用,在 dot 系下,通过 Roslyn 友好的 API 和强大的能力,实现一个代码智能提示是非常简单的事情。本文将和大家简单介绍一下如何使用 Roslyn 实现简单的代码智能提示补全功能 七天. 8操作SQLite入门到实战详细教程(选型、开发、发布、部署) https:www.cnblogs.comCandaydayupp18354637
聊一聊 C# 中让人惶恐的 Bitmap
一:背景 1. 讲故事 在.高级调试的旅程中,我常常会与 Bitmap 短兵相接,它最大的一个危害就是会让程序抛出匪夷所思的 OutOfMemyException,也常常会让一些.开发者们陷入其中不能自拔,痛不欲生,基于此,这一篇我从dump分析的角度给大家深挖一下 Bitmap 背后的故事。 二:Bitmap 背后的故事 1. Bitmap 能吃多少内存 相信有很多朋友都知道 bitmap 吃的是非托管内存,但相信也有很多朋友不知道这玩意竟然能吃掉bitmap自身大小的几十倍,甚至上百倍。可能这么说有点
dotnet C# 从控制台开始 关联 Win2D 和 WinUI 3 应用
本文将告诉大家如何从最简单的控制台开始搭建,让 Win2D 和 WinUI 3 关联起来,让 Win2D 可以将内容渲染到 WinUI 3 应用上本文适合想了解 WinUI 3 基础机制以及 Win2D 与 WinUI 3 协同的方式的伙伴。阅读本文将可以了解到一个简单的方式,简单到使用控制台项目即可进行搭建整个简单应用 在 上一篇博客 里,告诉大家可以如何简单从控制台搭建起一个 WinUI 3 应用。本文将在此基础上告诉大家如何关联上 Win2D 进行基础界面绘制 大概制作出来的应用的界面如下图上图里面
.NET 音频采集
本文介绍Windows下声音数据的采集,用于本地录音、视讯会议、投屏等场景 声音录制有麦克风、扬声器以及混合录制三类方式,麦克风和扬声器单独录制的场景更多点,混合录制更多的是用于本地录音 我们基于NAudio实现,开源组件NAudio已经很稳定的实现了各类播放、录制、转码等功能,WaveInWaveInEventWasapiCaptureWasapiLoopbackCapture WaveOut WaveStream WaveFileWriter WaveFileReader AudioFileReade
Caliburn.Micro学习之Action Conventions
最近在学习Caliburn.Micro这个框架,应用于WPF项目。相较于prism,caliburn.micro对于事件的绑定就完全不一样,它有好几种模式,借鉴于caliburn.micro的官方simple可以研究说明一下 链接:https:github.comCaliburnMicroCaliburn.Micro 文档:Caliburn.Miro\Caliburn.Micromaster\samples\features,在ActionsView.xaml中用Button的Click事件依次举例。 1
C# 面向对象的7大原则之开闭原则(Open-Closed Principle,OCP)
定义 开闭原则(OCP):软件实体应对扩展开放,对修改关闭。 通俗来讲就是,当需要进行扩展时,在不更改现有代码的前提之下,进行扩展。 举例 假设有一个动物发出声音的类为Animal,最初只有Dog(狗)和Cat(猫),后续需要新增Cow(牛);按照开闭原则,不应修改Animal类、Dog类或Cat类,而是创建新的Cow类,并在适当的地方进行扩展 Animal类1 abstract class Animal 2 { 3 public abstract void MakeSound() 4 }Dog类
关于Protobuf在使用中的一些注意点
Protobuf是谷歌旗下的一款二进制序列化协议 协议的编写 在项目中新建一个xxx.proto文件 文件的格式 第一行写protobuf的版本 syntax = "proto3" 第二行写 包的名字 在C#中就说命名空间的名字,避免重复 例如 package Test 接下来写协议内容 例如以下示例 关于protobuf的具体语法大家 自行百度 message LoginExample message 在后面编译的时候会自动的生成一个类 { int32 loginid =1 stri
WPF 模仿前端大佬写一个Hover效果
先看一下效果吧: 原博主的地址:【动画进阶】神奇的卡片 Hover 效果与 Blur 的特性探究 ChokCoco 博客园 (cnblogs.com) 原效果是一个css效果我们采用WPF的方式模仿一下 因为技术有限,没有原博主的那么好看,毕竟盗版永远比不过原版... 然后这里看一下盗版的怎么写吧 先是拿到原版的图片(原博客里面有图片地址),当然也可以自己挑一张自己喜欢的图片把图片保存到自己的WPF项目下面 再把图片运用到代码里面去,给一个bder的背景设置成图片,再给bder设置一个圆角,就会得到