lindexi

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

林德熙

Avalonia 笔迹渲染太慢了 用 WPF 做加速层

由于 Avalonia 的渲染延迟非常高,而笔迹应用对渲染实时要求高,我尝试在 Windows 下对 Avalonia 做了很多优化尝试,但都距离 WPF 随便写个笔迹应用慢很多。既然 Avalonia 优化不动,那就用 WPF 做加速层

对比 Avalonia 和 WPF 的渲染延迟

最近我在摸索 Avalonia 的渲染层,这个问题源自于 7 年前,我尝试给 Avalonia 添加笔迹应用。在去年的时候,我发现 Avalonia 的笔迹性能非常糟糕,今年我设计了一个测试用例。在 Avalonia 窗口上叠加一个透明的 WPF 窗口,从 Avalonia 收到鼠标或触摸输入之后,再发送到 WPF 窗口上,让 Avalonia 和 WPF 窗口同时对一个 Border 进行 RenderTransform 平移

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

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

Win32 使用 MoveFileEx 延迟到重启后删除文件

某些文件由于当前进程还在占用中,无法立刻删除,可通过 KERNEL32 提供的 MoveFileEx 方法延迟到下次开机启动时删除文件

Windows 窗口样式 什么是 WS_EX_NOREDIRECTIONBITMAP 样式

我觉得我可以加入历史博物馆了,加入微软历史博物馆,本文也是和大家吹历史的博客

WPF 使用 Vortice 在 D3DImage 显示 D2D 内容

本文属于 DirectX 的基础入门使用博客。本文将告诉大家,如何在 WPF 里面,使用 Vortice 库在 D3DImage 上显示通过 D2D 绘制的内容

win10 uwp 显示SVG

本文说如何显示SVG

win10 uwp 收集 DUMP 文件

如果在用户端软件直接退出,在以前 win32 程序可以使用 DUMP 进行调试。在 UWP 需要在电脑的注册表做一些配置才可以收集到 DUMP 文件

win10 uwp 异步转同步

有很多方法都是异步,那么如何从异步转到同步?

win10 uwp 如何开始写 uwp 程序

本文告诉大家如何创建一个 UWP 程序。 这是一系列的 uwp 入门博客,所以写的很简单

win10 uwp 如何在DataTemplate绑定方法

本文告诉大家几个方法在 DataTemplate 绑定。

win10 uwp 在 xaml 让 TextBlock 换行

本文告诉大家几个方法在 xaml 的 TextBlock 的 Text 换行

win10 uwp 商业游戏 1.2.1

上一个游戏已经告诉大家如何写多个游戏,现在继续写这个无聊的游戏。

win10 uwp 商业游戏

本文告诉大家去做一个商业游戏,游戏很简单,几乎没有什么技术。

win10 uwp 发布的时候 ILC 编译不通过

本文告诉大家如果在 UWP 发布的时候遇到 ILC 的问题可以如何解决

win10 uwp 使用 Microsoft.Graph 发送邮件

在 2018 年 10 月 13 号参加了 张队长Office 365 训练营 学习如何开发 Office 365 插件和 OAuth 2.0 开发,于是我就使用 UWP 尝试使用 Microsoft.Graph 经过了一天的测试终于成功使用发送邮件 本文告诉大家如何在 UWP 调用 Microsoft.Graph 发送邮件

win10 uwp win2d 离屏渲染

离屏渲染(Offscreen drawing)是一个不错的科技,在系统有空的时候,提前先画出部分界面。这样在需要直接渲染的时候就可以直接拿出来而不需要等待进行渲染的时候才画出来。

win10 uwp win2d 特效

本文告诉大家 win2d 里面的特效

win10 uwp win2d CanvasVirtualControl 与 CanvasAnimatedControl

本文来告诉大家 CanvasVirtualControl ,在什么时候使用这个控件。

VisualStudio 通过外部调试方法快速调试库代码

在开发的时候,我有一个很大的项目,里面包含了 1000 个项目,但是我需要调试里面的一个库,如果直接修改这个库,会让 VisualStudio 重新编译 90 个项目,于是这样的调试的速度就太慢 本文告诉大家如何通过外部调试的方法,每次调试只需要编译这个库不需要编译其他的项目

VisualStudio 自定义外部命令

通过自定义命令,可以在 VisualStudio 加上一些自定义命令,可以快速启动 git 或者做其他的事情

VisualStudio 扩展开发 添加菜单

本文告诉大家如何快速在开发 VisualStudio 的工具里面添加菜单,点击菜单运行自己的代码

VisualStudio 使用新项目格式快速打出 Nuget 包

本文告诉大家如何通过 VisualStudio 的新项目格式快速打出 Nuget 包

VisualStudio 使用三个方法启动最新 C# 功能

本文告诉大家如何在 VisualStudio 打开最新的 C#,现在的微软更新 C# 很快,那么如何让 VisualStudio 在项目使用最新的

SourceYard 制作源代码包

本文带大家走进SourceYard开发之旅 在项目开发中,将一个大的项目拆为多个小项目解耦,减少模块之间的耦合。因为如果将代码放在一起,即使有团队的约束,但只要能写出的代码就会有小伙伴写出,很快就发现各个模块耦合的代码很多。但是对一个项目的拆分会让拆分出来的每一个项目都编译出一个 dll 增加运行文件的启动时间。 在开发中,常常会用到很多工具类,这些小轮子很多的功能基本就只有一个类,如何对这些小轮子进行管理?通过复制代码还是通过 Nuget 管理?

Roslyn 将这个文件放在你的项目文件夹,无论哪个控制台项目都会输出林德熙是逗比

虽然已经通过很多篇博客告诉大家如何通过 Directory.Build.props 文件修改编译的方法,但是本文还是提供一个新的思路 只需要在项目文件夹,或者磁盘的文件夹,如 E:\ 放下本文提供的 Directory.Build.props 文件,整个文件夹内的控制台项目就会输出 林德熙是逗比 想要知道是怎么做的,请看下面

Roslyn 使用 WriteLinesToFile 解决参数过长无法传入

在写 Roslyn 的时候,经常需要辅助编译的工具,而这些工具需要传入一些参数,在项目很大的时候,会发现自己传入的参数比微软限制控制台可以传入的参数大很多,这时就无法传入了参数。 本文告诉大家如何使用 WriteLinesToFile 先把参数写入文件,通过文件的方式传输参数

Roslyn MSBuild 在构建完成之后 将构建时间写入到输出文件

我期望在每次构建完成之后,创建一个文件,在这个文件里面写入是什么时间构建的。这个需求实现非常简单,只需要使用 Target 在构建完成,使用 WriteLinesToFile 方法写入时间到输出文件即可

Office 使用 OpenXML SDK 解析文档博客目录

本文收集 Office 解析相关博客

NetBIOS 计算机名称命名限制

本文告诉大家对于 NetBIOS 的命名的限制

msbuild 使用 ProduceOnlyReferenceAssembly 创建作为引用的仅公开成员程序集

本文告诉大家如何使用 msbuild 的 ProduceOnlyReferenceAssembly 功能,将某个程序集里面仅导出其中的公开成员定义,而不包含具体的实现的方法

Latex 论文elsevier,手把手如何用Latex写论文

这几天在开始写论文,准备发的是elsevier,这个网站的instruction有问题,下载的东西基本上好多的错误,所以我就写博客记录。

dotnet 读 WPF 源代码笔记 渲染收集是如何触发

在 WPF 里面,渲染可以从架构上划分为两层。上层是 WPF 框架的 OnRender 之类的函数,作用是收集应用程序渲染的命令。上层将收集到的应用程序绘制渲染的命令传给下层,下层是 WPF 的 GFX 层,作用是根据收到的渲染的命令绘制出界面。本文所聊的是渲染上层部分,在 WPF 框架是如何做到界面刷新渲染,包括此调用的顺序以及框架逻辑

dotnet 读 WPF 源代码笔记 Stroke 类可能存在的内存泄露

在 WPF 中,使用 Stroke 类时,可能会出现内存泄露,原因是 DrawingAttributes 的事件被监听没有释放。本文将从源代码的角度告诉大家这个内存泄露问题和如何解决

dotnet 获取用户设备安装了哪些 .NET Framework 框架

从注册表可以拿到当前用户安装的 .NET Framework 版本,本文告诉大家如何解析这些信息