lindexi

林德熙 - 微软最具价值专家和 .NET 基金会成员

林德熙

博客导航

本文记录我写的博客和我收集的博客

Windows 调试工具课程

Windows 调试工具课程——在软件万种死法中调试出原因

dotnet 读 WPF 源代码笔记 从 WM_POINTER 消息到 Touch 事件

本文记录我读 WPF 源代码的笔记,本文将介绍在 WPF 底层是如何从 Win32 的消息循环里获取到的 WM_POINTER 消息处理转换作为 Touch 事件的参数

WPF 从裸 Win 32 的 WM_Pointer 消息获取触摸点绘制笔迹

本文将告诉大家如何在 WPF 里面,接收裸 Win 32 的 WM_Pointer 消息,从消息里面获取触摸点信息,使用触摸点信息绘制简单的笔迹

Roslyn 简单实现代码智能提示补全功能

相信有很多伙伴热衷于编写 IDE 应用,在 dotnet 系下,通过 Roslyn 友好的 API 和强大的能力,实现一个代码智能提示是非常简单的事情。本文将和大家简单介绍一下如何使用 Roslyn 实现简单的代码智能提示补全功能

dotnet C# 从控制台开始 关联 Win2D 和 WinUI 3 应用

本文将告诉大家如何从最简单的控制台开始搭建,让 Win2D 和 WinUI 3 关联起来,让 Win2D 可以将内容渲染到 WinUI 3 应用上

dotnet 解决使用本地不安全 http 的 NuGet 源 NU1803 警告或构建失败问题

出于安全性考虑,微软在 NuGet 的 6.3 版本开始引入 NU1803 警告,此警告将在遇到使用的 NuGet 源为 http 源时触发。 微软推荐 NuGet 的源应该都是安全的 https 源,甚至在 dotnet 9 预览版本里面将其视为构建错误

WPF 使用快捷键方式制作简易的 Word 上的 Latex 输入法

本文将告诉大家如何在 WPF 里面编写一个简易输入法软件,让这个输入法软件支持插入 Latex 格式的公式到 Word 内。核心原理是使用 Word 的快捷键插入公式编辑器,再通过剪贴板输入 Latex 格式的公式内容,再输入回车作为 Word 公式

非技术 做饭实验记录

本文记录我的做饭实验,包括煮什么菜和做法

dotnet 代码调试方法

本文将会从基础到高级,从简单到复杂的顺序,告诉大家如何调试 dotnet 系应用,特别是桌面端应用。本文将会向大家介绍使用 VisualStudio 大量的功能用来提高调试效率,穿插着也会介绍一些好用的调试辅助工具,以及如何编写方便调试的代码,期望大家通过阅读本文能有所收获

使用 LatestCSharpFeatures 库让旧版本 dotnet 框架项目使用新 C# 语法

本文将和大家介绍 dotnet campus 开源组织的 LatestCSharpFeatures 库,通过 LatestCSharpFeatures 库可以让使用旧版本的 dotnet 框架的项目可以应用上更多最新版本的 C# 语法

WinUI 3 修复非打包应用运行提示缺少 Windows App Runtime 环境

本文将告诉大家如何修复 WinUI 3 非打包的应用,在分发给到客户时,在客户的机器上运行提示缺少 Windows App Runtime 环境

WPF 已知问题 在 WIC 层处理异常图片时 可能由于出现未处理异常导致进程退出

本文记录一个已知问题,此问题预计和 WPF 只有一毛钱关系,本质问题是在 WIC 层的 WindowsCodecs.dll 或 CLR 层上。在一些奇怪的系统上,解码一些奇怪的图片时,可能在解码器层抛出未捕获的本机异常,从而导致进程退出

ASP.NET Core 简单给 Phi 模型封装一个服务

本文将和大家介绍如何使用 ASP.NET Core 简单给 Phi 模型封装成一个服务,可以让其他设备通过 http 请求方式调用到模型计算能力

msbuild Roslyn 行为详解

本文来告诉大家 msbuild Roslyn 的行为,本文非新手友好

dotnet 打包 NuGet 的配置属性大全整理

本文整理 dotnet 打包 CBB 组件为 NuGet 包时可以使用的配置的各个属性

记 dotnet campus 组织为适配龙芯所做的更改

本文记录在龙芯适配过程中的 dotnet campus 开源组织的更改,这些更改仅仅只是 dotnet campus 开源组织自身的项目的更改,不涉及给任何龙芯上游的贡献

dotnet 读 WPF 源代码笔记 了解 WPF 已知问题 后台线程创建 WriteableBitmap 锁住主线程

在 WPF 中,如果在没有开启 Dispatcher 的后台线程里面创建 WriteableBitmap 对象,在 WriteableBitmap 构造函数传入在主线程创建的 BitmapSource 也许就会锁住主线程。本文将通过 WPF 框架源代码告诉大家为什么会锁住主线程

WPF 触摸相关

本文整理我写的和我收集的触摸博客

dotnet 简单写一个 pdb 符号文件下载器

本文将告诉大家如何读取 PE 文件头信息,拼接 PDB 符号文件下载地址,从微软公共符号服务器拉取符号文件

dotnet 麒麟 Kylin 的 X11 应用开发记录

本文记录我在麒麟 Kylin 的 X11 应用开发过程的经验

如何保留 wpftmp.csproj 文件用于调试

在构建 WPF 的过程,会生成 wpftmp.csproj 中间项目文件,用这个文件来辅助 XAML 构建过程。中间项目文件会在构建完成之后被删除,本文告诉大家如何保留 wpftmp.csproj 文件用于调试

Packaging.DebUOS 专门为 dotnet 应用制作 UOS 安装包

Packaging.DebUOS 是我所在的团队开发开源的一款专门用在为 dotnet 的应用制作成为符合要求的 UOS 统信系统软件安装包的工具,此工具可以辅助开发者使用现有的工具链经过简单的配置即可完成安装包的制作

WPF 开发

本文:我遇到的WPF的坑

记腾讯微信输入法导致 WPF 应用卡住 窗口无法激活和显示

本文记录我远程一位老师的设备,这位老师使用的是 Win7 Sp1 系统,现象是 WPF 应用的窗口无法激活,在 user32 的 SetForegroundWindow 或 NtUserShowWindow 方法卡住

SixLabors.ImageSharp 如何读取 IDAT 校验失败的 png 图片

本文记录如何在 SixLabors.ImageSharp 库里面读取 IDAT 校验失败的 png 图片

WPF 让窗口激活作为前台最上层窗口的方法

在 WPF 中,如果想要使用代码控制,让某个窗口作为当前用户的输入的逻辑焦点的窗口,也就是在当前用户活动的窗口的最上层窗口,默认使用 Activate 方法,通过这个方法在大部分设备都可以做到激活窗口

WPF 弹出 popup 里面的 TextBox 无法输入汉字

这是一个 wpf 的bug,在弹出Popup之后,如果 Popup 里面有 TextBox ,这时无法在里面输入文字。

WPF 修复 dotnet 6 与源代码包冲突

在 dotnet 6 时,官方为了适配好 Source Generators 功能,于是默认就将 WPF 的 XAML 构建过程中,引入第三方库的 cs 文件,这个功能默认设置为开启。刚好源代码包为了修复在使用 dotnet 6 SDK 之前,在 WPF 的构建 XAML 过程中,不包含第三方库的代码文件,从而使用黑科技将源代码包加入到 WPF 构建 XAML 中。在 VisualStudio 升级到 2022 版本,或者是升级 dotnet sdk 到 dotnet 6 版本,将会更新构建调度,让源代码包里的代码文件被加入两次,从而构建失败

WPF 被 灵格斯翻译官 取词带崩

本文记录 灵格斯翻译官 翻译软件带崩 WPF 程序问题

dotnet 9 WPF 项目禁用 IncludePackageReferencesDuringMarkupCompilation 导致源代码包 XAML 构建失败

本文记录在 dotnet 6 时通过禁用 IncludePackageReferencesDuringMarkupCompilation 解决源代码冲突问题时,在 dotnet 9 将因此导致 XAML 构建生成的 g.cs 文件包含的 XAML 只记录相对文件路径,从而导致构建不通过

msbuild 项目文件常用判断条件

在写项目文件的时候,需要根据不同的条件定义或执行不同的代码,有一些比较常使用的判断,本文收藏起来,方便大家抄代码

WPF 打开资源管理器且选中某个文件

本文将和大家介绍如何在 Windows 系统上使用 SHOpenFolderAndSelectItems 方法打开资源管理器且选中给定的文件

开源实战

本文记录我参与的开源项目

记 QEMU 虚拟磁盘设备移动文件抛异常但实际移动成功

本文记录我所在的团队的一个简单的 WPF 应用程序在某个用户设备上跑出来的诡异行为。这个程序会从网上下载资源,下载的时候先下载到临时文件,再通过移动重命名的方式放到正确的路径。偶尔会出现下载成功,但是移动过程失败,但远程过去看却发现实际移动成功了