林德熙 - 微软最具价值专家和 .NET 基金会成员
本文记录我写的博客和我收集的博客
Windows 调试工具课程——在软件万种死法中调试出原因
本文记录我读 WPF 源代码的笔记,本文将介绍在 WPF 底层是如何从 Win32 的消息循环里获取到的 WM_POINTER 消息处理转换作为 Touch 事件的参数
本文将带领大家入门 dotnet 的 SourceGenerator 源代码生成器技术,期待大家阅读完本文能够看懂理解和编写源代码生成器和分析器
本文将告诉大家如何在 WPF 里面,接收裸 Win 32 的 WM_Pointer 消息,从消息里面获取触摸点信息,使用触摸点信息绘制简单的笔迹
相信有很多伙伴热衷于编写 IDE 应用,在 dotnet 系下,通过 Roslyn 友好的 API 和强大的能力,实现一个代码智能提示是非常简单的事情。本文将和大家简单介绍一下如何使用 Roslyn 实现简单的代码智能提示补全功能
本文将告诉大家如何从最简单的控制台开始搭建,让 Win2D 和 WinUI 3 关联起来,让 Win2D 可以将内容渲染到 WinUI 3 应用上
Packaging.DebUOS 是我所在的团队开发开源的一款专门用在为 dotnet 的应用制作成为符合要求的 UOS 统信系统软件安装包的工具,此工具可以辅助开发者使用现有的工具链经过简单的配置即可完成安装包的制作
本文整理 dotnet 打包 CBB 组件为 NuGet 包时可以使用的配置的各个属性
在当前所有渲染框架里面,做 2D 渲染的,最好的框架是 Win2d 这个提供了大量底层接口封装,不仅性能高同时接口设计非常好 在很久之前,只有在 UWP 等现代应用才能使用 Win2d 而 WPF 是不能使用的。好在微软开放了一些黑科技,可以在 WPF 上使用 Win2d 渲染,下面就让我告诉大家如何在 WPF 上使用
本文将会从基础到高级,从简单到复杂的顺序,告诉大家如何调试 dotnet 系应用,特别是桌面端应用。本文将会向大家介绍使用 VisualStudio 大量的功能用来提高调试效率,穿插着也会介绍一些好用的调试辅助工具,以及如何编写方便调试的代码,期望大家通过阅读本文能有所收获
在一些 Windows 7 系统上,根据 dotnet 官方文档,需要安装上 KB2533623 补丁,才能运行 dotnet core 或 .NET 5 等应用。尽管非所有的设备都需要安装此,但这也让应用的分发不便,安装包上都需要带上补丁给用户安装。此补丁同时也要求安装完成之后重启系统,这对用户端来说,也是较不方便。本文来聊聊为什么 dotnet core 一系的框架依赖于此补丁
在上小学有一道题目是半杯50度的水加上半杯50度的水等于什么,我傻傻写了半杯100度的水。当时我还是逗者级别的,现在是逗尊级别了。在写代码的时候会看到莫名一个不带单位的变量或属性,总是会觉得我会加出100度出来。什么是不带单位的属性?例如我看到了有人写了一个属性叫字体大小的,这个属性是 double 值,这就好玩了,请问这是一个像素单位还是磅单位。程序猿修养给属性一个单位,可以提升代码可读性
本文讨论的 Office 文档指的是 Office 2007 及以后的 PPTX 和 xlsx 等格式的文件。在 Office 2007 之前使用的不公开标准的二进制格式定义。在 Office 2007 之后的文档格式使用 OOXML 国际标准定义,本文将告诉大家这个标准的协议和格式
本文收集 Office 解析相关博客
在现代软件开发中,确保应用程序的安全性是一个至关重要的任务。为了识别潜在的安全问题,开发者需要使用专业工具对二进制文件进行深入分析。BinSkim 就是一款专为此设计的开源工具,它能够对可移植可执行文件(PE 文件)及其关联的符号文件(PDB)进行检查,从而发现多种安全问题
不知是否有伙伴也遇到这样的问题,WPF 发布的时候,生成的多语言文件夹数量太多了。这些多语言文件夹里面,绝大部分内容都是些用来抛异常用的字符串,或者是一些不常用的字符串。虽然单个 DLL 文件不大,但是数量太多了,如此也会多占用一些磁盘空间
本文属于基础入门博客,将和大家介绍如何在 dotnet C# 代码里面使用底层的 Socket 进行 HTTP 网络请求
在 Windows 桌面应用程序里面,可以简单地使用 DwmFlush 方法来与 DWM 对齐刷新率
本文来告诉大家在C#很少有人会发现的科技。即使是工作了好多年的老司机也不一定会知道这些科技,如果觉得我是在骗你,那么请看看本文的内容
在我的编程习惯意识里,布尔 bool 只能是 true 或 false 的值。如果要算上可空布尔,那就最多加上一个 null 空值。然而从 dotnet 运行时的角度上说,布尔完全完全可以是 true 或 false 之外的值
这是我收藏的开源项目
本文记录我使用 FastTunnel 工具的笔记
在 Avalonia 的窗口 OnClosing 事件里面,将 WindowClosingEventArgs 的 Cancel 属性赋值为 true 用来取消窗口关闭,此时 Linux 麒麟系统的 ukui 组件在进行关机时,将会在调用 会话管理器 时,收到会话管理器取消了本次操作,进而无法进行关机或注销或重启
本文记录一个 ReSharper 已知问题,在在 Directory.Build.props 属性求值结果不能应用到项目里,此行为将导致 ReSharper 获取的构建文件与 VisualStudio 不同,导致了可能存在的冲突
现在 SharpDx 已经不维护了,如果还需要在 C# 使用 Dx 相关技术,可以使用本文列出的替代项目
本文告诉大家如何通过 SharpDx 进行异步渲染,但是因为在 WPF 是需要使用 D3DImage 画出来,所以渲染只是画出图片,最后的显示还是需要 WPF 在他自己的主线程渲染。
上一篇告诉大家如何在 WPF 使用 SharpDx ,看起来代码比较复杂,所以本文告诉大家如何使用我封装的控件。
本文告诉大家如何使用 SharpDX 在 D3DImage 显示。在上一篇WPF 使用 SharpDX只是使用窗口,也就是无法使用其它的 WPF 控件。所以这一篇就来告诉大家如何使用 WPF 控件和使用 SharpDX 。
本文来告诉大家如何在 Direct2D1 绘制基本图形,包括线段、矩形、椭圆
本文来告诉大家如何在 WPF 使用 D2D 画图。
本文将告诉大家在拿到了 D3D11 的 Device 也就是 D3DDevice 之后,如何去获取 DXGI.Device 以及 DXGI.Factory 的方法
本文将和大家聊聊 DirectX 里面的功能等级在 SharpDx 的使用方法
本文告诉大家通过 SharpDx 画出简单的 2D 界面
在当前的画面都是使用三角形,在开始就告诉大家如何画三角,本文告诉大家如何用像素著色器画