selecteditem treeview方案wpf

WPF 使用 Dispatcher 的 InvokeAsync 和 BeginInvoke 的异常处理差别

一般认为 WPF 的 Dispatcher 的 InvokeAsync 方法是 BeginInvoke 方法的平替方法和升级版,接近在任何情况下都应该在业务层使用 InvokeAsync 方法代替 BeginInvoke 方法。然而在异常的处理上,这两个方法还是有细微的差别的,不能说是坏事,依然可以 ......

WPF 编写一个测试 WM_TOUCH 触摸消息延迟的应用

我听说在 Win10 到 Win11 的系统版本左右,微软加上了一大波触摸性能优化,准确来说是 HID 性能优化。我想测试一下在这些系统下,采用从 Windows 消息接收到 WM_TOUCH 触摸消息的延迟将会是多少。本文将告诉大家我编写的测试应用 为了能够让 WPF 窗口能接收到 WM_TOUC ......
WM_TOUCH 消息 TOUCH WPF WM

WPF 已知问题 清空 CollectionView 的 SortDescriptions 可能抛出空异常

本文记录一个 WPF 的已知问题,在通过 CollectionViewSource 获取到 CollectionView 之后,如果 CollectionViewSource 对象已被 GC 回收,将可能在调用 CollectionView 的 SortDescriptions 属性进行清空或者移除 ......
SortDescriptions CollectionView 问题 WPF

WPF 对接 Vortice 调用 D2D 使用 IWICBitmap 离屏渲染

通过 Vortice 库可以使用非常底层的方式调用到 Direct2D1 进行渲染,本文将使用 D2D 离屏渲染到 IWICBitmap 上,再使用一点点反射黑科技,直接将此 IWICBitmap 对接到 WPF 框架里。本文提供的这个方法可以实现极高性能且只有很少的转换损耗的离屏渲染方式,唯一的一 ......
IWICBitmap Vortice WPF D2D D2

WPF 已知问题 InputEventArgs 的 Timestamp 属性是静态的导致事件之间相互影响

本文记录一个 WPF 已知的设计问题,当前此问题已经被大佬修复,这个设计问题刚好属于比较边缘的模块,我写了这么多年的代码还没有踩到这个坑一次,也没有听到有谁提到这个坑 远古时候,不知道大佬是故意还是失误的在 InputEventArgs 类型里面的 `_timestamp` 字段上加上了 stati ......

WPF 已知问题 在 ObservableCollection 的 CollectionChanged 修改集合内容将让 UI 显示错误

本文记录一个 WPF 已知问题,在 ObservableCollection 的 CollectionChanged 事件里面,绕过 ObservableCollection 的异常判断逻辑,强行修改集合内容,修改之后的 UI 层将不能符合预期。本文将告诉大家此问题的复现方法和修复方法 在 UI 绑 ......

WPF 对接 Vortice 在 Direct2D 绘制从 WIC 加载的图片

本文告诉大家如何通过 Vortice 在 Direct2D 里面绘制图片,图片的来源是 WIC 加载出的图片 在上一篇博客 [WPF 对接 Vortice 调用 WIC 加载图片](https://blog.lindexi.com/post/WPF-%E5%AF%B9%E6%8E%A5-Vortic ......
Direct2D Vortice Direct2 Direct 图片

WPF 修复引用库报错 所使用的 PresentationFramework 6

本文记录一个 WPF 构建的坑,这是 WPF 仓库的运维管理大意挖的坑。将会在大家使用低版本的 dotnet 6 如 6.0.1 版本时,引用其他人使用高 dotnet 6 版本,如 dotnet 6.0.12 版本构建出来的使用 WPF 的程序集时,将会提示引用存在版本差异从而构建失败。本文将告诉 ......
PresentationFramework WPF

dotnet 读 WPF 源代码笔记 聊聊 HwndWrapper

我在阅读 WPF 源代码,在 HwndWrapper 的静态构造函数看到了申请了 HwndWrapper.GetGCMemMessage 这个 Windows 消息,好奇这个消息是什么功能的。通过阅读 WPF 源代码和写测试应用,了解到这是一个完全用来内部测试或调试的消息,没有任何业务上的功能 在 ......
源代码 HwndWrapper 笔记 dotnet WPF

dotnet 读 WPF 源代码笔记 GlyphRun 的 DeviceFontName 的功能是什么

在 WPF 里面的 GlyphRun 里,有一个令人迷惑的 DeviceFontName 属性,似乎给这个属性传入什么值,结果都不会有变更。通过阅读源代码,可以了解到,这是一个没什么用途的属性。本文将告诉大家这个属性的细节逻辑 在上一篇博客 [WPF 简单聊聊如何使用 DrawGlyphRun 绘制 ......

dotnet 读 WPF 源代码笔记 渲染层是如何将字符 GlyphRun 画出来的

从业务代码构建出来 GlyphRun 对象,在 WPF 的渲染层里,如何利用 GlyphRun 提供的数据将字符在界面呈现出来。本文将和大家聊聊从 WPF 的渲染层获取到 GlyphRun 数据,到调用 DirectX 的各个渲染相关方法的过程,也就是 WPF 绘制文本字符的原理或者实现方法 大家印 ......
源代码 字符 GlyphRun 笔记 dotnet

修复 WPF 安装 WindowsAppSDK 库构建失败 NETSDK1082 和 NETSDK1112 找不到 win10-arm 失败

通过在 WPF 项目上安装 WindowsAppSDK 库,可以让 WPF 使用上 Win10 及以上版本提供的 Windows Runtime 强大的 API 集和使用上更多的黑科技。本文记录在安装 WindowsAppSDK 库之后,项目生成失败,提示 NETSDK1082 和 NETSDK11 ......
NETSDK WindowsAppSDK 1082 1112 WPF

WPF学习 - 自定义窗体(二)

上一篇文章写了如何创建自定义窗体:使用 WindowChrome 或者 WindowStyle=“None”这两种方式。本文将讲述如何设置窗体的效果(以阴影效果为例),以及在效果模式下,窗体各功能的配合。 一、窗体的空间范围: 窗体的范围,就是白色区域部分:包括窗体的边框,标题栏,以及内部的空白部分 ......
窗体 WPF

【Python 自动化】自媒体剪辑第一版·思路简述与技术方案

大家都知道我主业是个运维开发(或者算法工程师),每天时间不多,但我又想做自媒体。然后呢,我就想了个方案,每天起来之后写个短视频的脚本,包含一系列图片和文字,然后上班的时候给它提交到流水线上跑,下班之前就能拿到视频,然后往各大平台上一传,是不是挺美滋滋的。 我和我之前的合伙人一说,他就觉得做短视频没啥 ......
第一版 思路 方案 媒体 Python

AFG EDI 解决方案

AFG一直是汽车行业出境物流的专家,不仅运输汽车,同时也提供模块化IT解决方案,用于接收、控制、互联以及整个车辆调度过程的可视化和监控。 对于物流行业而言,如果已经确定了供应链整合的目标,但却没有明确的计划及足够的手段去实现这个目标,那么物流运营中必然会遇到各种各样的难题,而应对这些挑战,获得最终胜 ......
解决方案 方案 AFG EDI

cefsharp - WinForms 和 Wpf 示例之间的巨大性能差异

https://www.coder.work/article/7217456 我注意到在使用 http://www.vsynctester.com 时 CefSharp.WinForms.Example 和 CefSharp.Wpf.Example 之间存在非常重要的性能差异(以 FPS 计) 在我 ......
示例 cefsharp WinForms 差异 性能

WPF - 之对象变形

WPF(Windows Presentation Foundation)是一个用于构建客户端应用程序的图形界面库,它提供了许多对象变形(Object Transformation)的功能。这些功能可以让你轻松地改变对象的大小、位置和角度,以实现各种视觉效果。 以下是一些常用的 WPF 对象变形技术: ......
对象 WPF

WPF 性能测试

本文收藏我给 WPF 做的性能测试。在你开始认为 WPF 的性能存在问题的时候,不妨来这篇博客里找找看我做过的测试。我记录的测试都是比较纯净的测试项目,没有业务逻辑的干扰,写法也正常,可以更加真实反映 WPF 的性能,减少因为奇怪的业务逻辑以及逗比的写法的影响 ## 资源字典 ### 大量 Geom ......
性能 WPF

WPF 使用 Silk

在上一篇博客的基础上,使用 dotnet 基金会新开源的 Silk.NET 库,让 Silk.NET 创建的 DX 设备和 WPF 对接渲染。接下来本文将告诉大家如何使用 Silk.NET 提供的 Direct2D 底层封装,在 WPF 上绘制出界面 接着上一篇博客 [WPF 使用 Silk.NET ......
Silk WPF

WPF 优化 EnsureHandle 启动性能

本文将记录一个在 WPF 应用程序启动过程中的性能优化点。如果一个窗口需要设置 WindowStyle 属性,那么在窗口 EnsureHandle 之前,设置 WindowStyle 属性将会比在 EnsureHandle 之后设置快不少 在 dotTrace 里的一次测量在窗口 EnsureHan ......
EnsureHandle 性能 WPF

WPF 通过 RawInput 获取触摸消息

触摸在 Windows 下属于比较特殊的输入,不同于键盘和鼠标,键盘和鼠标可以通过全局 Hook 的方式获取到鼠标和键盘的输入消息。而触摸则没有直接的 Hook 的方法。如果期望自己的应用,可以在没有作为前台获取焦点的应用时,可以抓取到全局的触摸消息,抓取到其他应用程序的触摸输入,那么可以尝试使用 ......
RawInput 消息 WPF

WPF 制作一个加密文件夹应用

我有一个需求就是将我的一些文件夹的内容同步到网盘上面去。但是我是不信任现在的各个网盘的,网盘的数据被我认为是会被泄露的数据,我需要同步的文件夹中,可能存在隐私的数据。于是我就想到了将文件夹里面的内容进行加密,将加密之后的内容再同步到网盘上面去。如此网盘泄露的数据是加密之后的数据,没有密码的前提下,其 ......
文件夹 文件 WPF

WPF 自定义控件入门 Focusable 与焦点

自定义控件时,如果自定义的控件需要用来接收键盘消息或者是输入法的输入内容,那就需要关注到控件的焦点 默认情况下的自定义控件是没有带可获取焦点的功能的,例如编写一个继承 FrameworkElement 的名为 Foo 的用来演示的自定义控件,通过 Focus 方法其实也是无法给此控件设置上焦点了 为 ......
控件 Focusable 焦点 WPF

WPF 字体 FontStyle 的 Italic 和 Oblique 的区别

本文介绍在 WPF 里面的字体属性 FontStyle 的 Italic 和 Oblique 的斜体差别 本文的图片和知识来自: [#265 – Specifying Values for FontStyle 2,000 Things You Should Know About WPF](https ......
FontStyle 字体 Oblique Italic WPF

Web实时消息推送方案

实时消息推送是指在浏览器中展示实时更新的消息,而无需刷新页面。以下是七种实现Web实时消息推送的方案: 1、WebSocket: WebSocket是HTML5中新增的一种技术,它允许浏览器和服务器之间进行全双工通信,可以在服务器端推送消息给客户端,同时客户端也可以推送消息给服务器端。 2、Serv ......
实时 消息 方案 Web

WPF 自定义窗体(一)

.Net默认的窗体样式只有四种:None、SingleBorderWindow、ThreeDBorderWindow、ToolWindow,都比较“丑”。而很多时候,我们希望自定义窗体,比如,无边框,有阴影,或者有模糊效果等。 在WPF中,要实现自定义窗体比较简单,主要有两种方法: 1)使用Wind ......
窗体 WPF

海域可视化监管:浅析海域动态远程视频智能监管平台的构建方案

通过平台实现多点监控,让多个部门或团队共同参与到海域管理中来。此外,平台还提供了远程查看功能,用户可以通过手机、电脑等设备随时随地访问平台,了解海域的最新情况。 ......
海域 智能 方案 动态 平台

基于AI识别与视频监控技术的土地建设履约全周期监管方案

在工地施工现场、周边、工地出入口等处部署IPC、高空探头等网络监控设备,平台依据前端设备采集的视频流,进行视频实时监控、AI智能分析(人行检测/人流量统计、工程车识别、车辆进出等),实现对施工现场的数据采集和智能监管,以此了解项目施工进度等信息。 ......
视频监控 周期 土地 方案 技术

NineData:高效可靠的MongoDB迁移及同步方案

为解决用户面临的 MongoDB 迁移问题,玖章算术旗下的云原生智能数据管理平台 NineData 推出了 MongoDB 业务不停服数据迁移能力。NineData 实现了完全自动化的全量数据迁移,以及增量数据的采集复制能力。 ......
NineData MongoDB 方案

WPF项目国际化多语言工具ResXManager使用

首先在VS的扩展找到ResXManager进行下载安装 如果安装提示:vsix安装提示无法成功应用某些修改找到安装程序实例 1a5a9225,但其处于不可启 重新选中工具进行安装之后即可(有可能之前选中安装了,但是功能不完整,重新点击安装完整即可) 安装完ResXManager之后打开 新增语言,然 ......
ResXManager 工具 项目 国际 WPF