林德熙 - Windows 10 App Developer
本文记录一个 dotnet 6 已知问题,准确来说这是一个在 dotnet 5 引入的问题,到 dotnet 6.0.12 还没修。在获取 CultureInfo.NumberFormat 属性时,在一些奇怪的 Windows 设备上可能抛出 IndexOutOfRangeException 异常。本文将来告诉大家问题的原因和解决方法
自定义控件时,如果自定义的控件需要用来接收键盘消息或者是输入法的输入内容,那就需要关注到控件的焦点
本文属于 WPF 自定义控件入门系列博客。本文整理在 WPF 里面,自定义控件,非用户控件时,可以重写基类的许多方法和属性,这些方法和属性的作用和含义。方便让大家了解到自定义控件时,有哪些方法或属性可以被重写,重写时的正确实现以及其影响是什么
本文告诉大家一些收藏的开发者工具
本文告诉大家在 WPF 写一个自定义的文本框,如何实现让输入法跟随光标
我换了一台电脑,将旧电脑的硬盘换到新电脑上;我装了双系统,切换到另一个系统时;我发现了 git 代码仓库无法执行 git 命令,不断报错 fatal: detected dubious ownership in repository at ‘C:\lindexi\Code\Foo’ is owned by: ‘S-1-5-21-469934170-xxx-xxx-1001’ but the current user is: ‘S-1-5-21-469994170-aaa-bbb-1001’ 失败。本文记录此问题的解决方法
我听说在 Win10 到 Win11 的系统版本左右,微软加上了一大波触摸性能优化,准确来说是 HID 性能优化。我想测试一下在这些系统下,采用从 Windows 消息接收到 WM_TOUCH 触摸消息的延迟将会是多少。本文将告诉大家我编写的测试应用
我在阅读 WPF 源代码,在 HwndWrapper 的静态构造函数看到了申请了 HwndWrapper.GetGCMemMessage 这个 Windows 消息,好奇这个消息是什么功能的。通过阅读 WPF 源代码和写测试应用,了解到这是一个完全用来内部测试或调试的消息,没有任何业务上的功能
本文告诉大家如何使用代码禁用 WPF 的触摸消息,解决一些问题,或者准确来说挖出更大的坑
本文收集 Office 解析相关博客
在 PPT 里面的表格可以通过表格样式配置决定表格的样式,本文将和大家介绍如何获取和解析表格的样式
本文记录联软 UniAccess 注入的 C:\Window\LVUAAgentInstBaseRoot\syswow64\MozartBreathCore.dll 导致 NSIS 安装包启动进程失效,启动进程直接结束问题。且给出 NSIS 安装包脚本的规避方法
本文记录一个 Win32 的有趣行为,调用 CreateProcess 方法传入特别的参数,可以让任务管理器里的命令行不显示应用文件路径
很多开发者,包括开发老司机们,在碰到需要调用 Win32 函数时,都有一个困扰,那就是我应该如何去调用。有两个主要的选项,第一就是自己写 PInvoke 代码,第二就是使用其他大佬给许多 Win32 函数封装好的库。然而这两个方法都有各有各的缺点,第一个方法缺点是可能工作量会很大,需要写方法,写结构体等等。第二个方法缺点是大佬封装的库,虽然全,但可惜里面有很多我用不着的函数,有些浪费。本文将来和大家介绍一个宝藏库,可以很好解决此问题
在调用 win32 库的时候,小伙伴会遇到的问题是不知道对应的 win32 函数应该如何写。或者在网上抄了的代码的实现都有些诡异,想要自己封装发现工作量太大。好消息是官方将 PInvoke 库在 dotnet 基金会完全开源,包含了大量的 Win32 库,如 gdi32.dll 和 kernel32.dll 和 user32.dll 等
本文记录我了解的在一段多行文本里面,文本库对于光标行为的定义
在 dotnet 里面,可以使用 Directory.EnumerateXXX 系列方法进行枚举文件或文件夹。在准备枚举驱动器根路径的文件或文件夹时,可能获取到错误的路径。错误的步骤在于传入的是如 C: 不带斜杠的路径,且存在同驱动器磁盘下的非根路径工作路径
本文记录如何在 WinDbg 里,设置在加载到某个 DLL 时,自动进入断点。通过此方式用来定位是哪个业务模块加载了某个 DLL 模块
本文告诉大家如何调试 WPF 的某个依赖属性被变更的方法
本文介绍在 WPF 里面的字体属性 FontStyle 的 Italic 和 Oblique 的斜体差别
在和小伙伴讨论日志的时候,小伙伴说的是文件的读写,而实际上的日志在广义上包含了任何的输出方式,无论是控制台还是文件。而日志记录在哪不重要,重要的是什么日志应该记录,应该怎么记录和记录什么内容
本文记录一个 WPF 已知问题,在 ObservableCollection 的 CollectionChanged 事件里面,绕过 ObservableCollection 的异常判断逻辑,强行修改集合内容,修改之后的 UI 层将不能符合预期。本文将告诉大家此问题的复现方法和修复方法
我遇到在部署 CI 服务器,执行 cmd 命令构建,输出的中文是乱码。我期望让 dotnet 命令行输出使用英文解决乱码问题。通过设置 dotnet 命令行的语言文化,即可解决此问题
在 WPF 里面,提供的使用底层的方法绘制文本是通过 DrawGlyphRun 的方式,此方法适合用在需要对文本进行精细控制的定制化控件上。此方法特别底层而让调用方法比较复杂,本文告诉大家一些简单的使用方法
默认的 PackageReference 可以实现传递依赖,传递依赖的含义是是假定 B 项目安装了 A 库,而 C 项目依赖 B 项目,那么 C 项目将会自然拿到 A 库的 DLL 引用。但默认的 NuGet 包的构建指导文件 targets 命令是不会在传递执行的,也就是如上的 C 项目将不会执行 B 项目安装的 A 库里面的 target 内容 有一些项目需要拷贝自定义文件,例如拷贝图片或者一些 Native 的 DLL 等资源。如 WPF 框架需要拷贝 PenIME 等资源。如果只是在最底层的项目安装了库,那为了让可执行文件项目也输出库的资源,就需要在可执行项目上也安装库。以上的方法的不足在于安装复杂,也许会忘记安装 本文告诉大家一个解决方法是通过在制作库的时候,加上 BuildTransitive 文件夹,在此文件夹内添加构建指导文件,此时这个构建指导文件 targets 文件里面的命令将会在传递中执行,也就是说只需要在底层的项目安装即可,不需要在可执行项目上也安装库
我在测试一些奇怪的网络请求客户端,需要有一个服务端来配合接受,于是写了一个能够匹配所有请求路径的测试服务
本文将来和大家推荐一个基于最友好 MIT 协议的完全在 GitHub 上开源的,可代替 .NET Remoting 的 IPC 本机多进程通讯库
本文来告诉大家如何用 Roslyn 管理配置,在开一个新的项目的时候经常需要添加公司,版权等,但是这些信息不想每次都添加于是我就想用 Nuget 管理所有配置,安装一个 nuget 就自动配置
希沃白板是依靠云来实现同步编辑的功能,默认的编辑功能需要在有网络的情况下,才能很好的进行。如果我的网络断了,或进入了没有网络的无网环境,因为没法登录希沃白板的原因,无法编辑我的课件。本文来告诉大家简单的解决方法,通过希沃白板免登陆插件,实现免登陆进入希沃白板的编辑界面,编辑本地的课件
本文来告诉大家在C#很少有人会发现的科技。即使是工作了好多年的老司机也不一定会知道这些科技,如果觉得我是在骗你,那么请看看本文的内容
本文将告诉大家如何在 WPF 里面进行全局监控任意的窗口创建显示打开,可以获取到每个 WPF 窗口的打开的时机。如此可以用来辅助定位问题和输出日志
从业务代码构建出来 GlyphRun 对象,在 WPF 的渲染层里,如何利用 GlyphRun 提供的数据将字符在界面呈现出来。本文将和大家聊聊从 WPF 的渲染层获取到 GlyphRun 数据,到调用 DirectX 的各个渲染相关方法的过程,也就是 WPF 绘制文本字符的原理或者实现方法
在 WPF 里面,带了基础的文本库功能,如 TextBlock 等。文本库排版的重点是在文本的分行逻辑,也就是换行逻辑,如何计算当前的文本字符串到达哪个字符就需要换到下一行的逻辑就是文本布局的重点模块。本文来简单聊聊 WPF 的文本布局逻辑