lindexi

林德熙 - Windows 10 App Developer

林德熙

分形和图论网络

其实这是一个古老的话题,我用10分钟和你讲一段古老的故事。本文没有公式也没有前置的知识,只是一个有趣的故事。读这个故事能够消耗你几分钟,听着玩就可以,千万不要思考

WPF dotnet core 的 Blend SDK Behaviors 库

之前版本是通过安装 Blend SDK 支持 Behaviors 库的,但是这个方法都是通过引用 dll 的方式,不够优雅。在升级到 dotnet core 3.0 的时候就需要使用 WPF 官方团队开源的 Microsoft.Xaml.Behaviors.Wpf 库代替

C# dotnet WPF 使用 OpenXml 解析 Excel 文件

在 2013 微软开源了 OpenXml 解析库,在微软的 Excel 文档,使用的文档格式就是国际规范的 OpenXml 格式。这个格式有很多版本,详细请看百度。因为表格文稿使用的是 OpenXml 在 .NET 开发可以非常简单将 Excel 文档进行解析,大概只需要两句话

git 统计两个 commit 之间相差的次数

本文告诉大家在一个连续的 commit 树中统计两个 commit 之间的差异的 commit 数量,也就是存在 A commit 存在而 B commit 不存在的 commit 的数量

C# dotnet 获取某个字符所在 Unicode 字符平面映射

在 dotnet 里面可以通过安装 System.Text.Encodings.Web 库拿到 UnicodeRanges 这个包含了 Unicode 标准的平面映射。但是我还没有找到如何判断一个字符是落在哪个平面的逻辑,本文就告诉大家一个可以使用的方法,这个方法同时稍微兼顾了性能

Azure 函数服务部署失败 因为函数应用设置 v3 但主机是 v2 版本

在使用 Azure Function 函数服务的时候,将代码推送到函数服务器的时候提示 Your function app is targeting v3, but Azure host has function version 2 此时是因为在 Azure 的主机设置的版本落后函数的代码版本

一些好用的 dotnet tool 工具

本文收藏一些好用的 dotnet tool 工具

dotnet 使用 OpenXML SDK 解析 Office 的项目符号 buNone 含义

在解析 PPT 文档的时候,文本是比较复杂的一部分,而因为很多有趣的坑,即使是微软大法也有一些诡异的设计,例如项目符号的是否显示

dotnet 不申请额外数组空间合并多个只读数组列表

我在写一个简单的功能,需要将两个不同的数组合并到一起,但是我的功能只是做只读,如果合并的方法需要申请额外的内存空间,将降低性能。本文写了一个简单的方法,通过判断下标的方法做遍历多个数组组合在一起,通过判断当前获取的下标在对应哪个数组下标范围内,返回对应数组的元素

SublimeText 配置跳转回上个光标坐标

在 VisualStudio 可以通过 ctrl+- 的功能,跳转到上个光标所在的坐标。如在多个方法之间跳转,可以通过这个快捷键快速实现。在 SublimeText 可以在菜单的 Goto 里面找到 Jump Back 功能,这个功能就是对应 VisualStudio 的跳转回上个光标的功能,也就是向后定位功能

dotnet OpenXML SDK 文本占位符解析

在使用 OpenXML SDK 解析 PPT 文档的文本占位符的时候,需要对 PPT 的格式有一定的了解,尽管整个 OpenXML SDK 包括文档等都很详细。但是有一些细节文档上虽然有写,但是没有强调一下,就被我忽略了

C# dotnet 使用 TaskCompletionSource 实现暂停功能

在 C# 里面,可以使用 dotnet 的 TaskCompletionSource 方法自己实现一个异步任务,这个任务可以方便设置任务是否完成等做到让等待的过程继续或等待。根据这个功能可以解决在复杂的功能里面通过异步等待的方法实现暂停。做法就是等待一个异步任务,如果这个功能处于暂停,那么只需要让这个异步任务不结束,此时整个功能就会在等待,直到设置了异步任务完成

为何 WPF 对 vcruntime140 有引用

通过阅读 WPF 官方开源仓库的代码和文档,可以了解到在进行独立发布的时候会在仓库里面带上 vcruntime140 的原因

dotnet C# 图片等比限制最大和最小大小缩放算法

本文只是告诉大家如何计算缩放之后的宽度和高度,不包含实际的图片缩放方法

使用 C# 写脚本的优势和方法

现在很方便就可以将 C# 作为某个脚本使用,本文这里的脚本指的是直接执行源代码的方式。现在是 2020 现在的 C# 默认在 dotnet 的支持下,可以作为脚本使用,本文将告诉大家使用 C# 写脚本的优势和方法

win10 uwp 颜色转换

本文告诉大家如何从字符串转颜色,从颜色转字符串

使用 .NET Core 在 MAC 下提供 Excel 的 Power Query 功能

什么是 Power Query 功能?这是一个数据连接技术,可以用来发现、连接、合并、提炼数据用来满足数据处理需要。这个技术已经开发了很多年了,主要是提供给 Excel 和 PowerBI 桌面版使用。这个技术现在是作为 Windows 下的应用功能,通过 C# 托管在 .NET Framework 的功能。本文主要告诉大家在 .NET Core 2.1 发布之后,可以使用 .NET Core 跨平台的能力赋予 MAC 设备 Power Query 的功能,微软的团队是如何从原本只有在 Windows 下才能运行的功能搬到 MAC 上

Windows 窗口样式 什么是 WS_EX_NOREDIRECTIONBITMAP 样式

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

Windows 对全屏应用的优化

全屏应用对应的是窗口模式应用,全屏应用指的是整个屏幕都是被咱一个应用独占了,屏幕上没有显示其他的应用,此时的应用就叫全屏应用。如希沃白板这个程序。本文主要告诉大家从微软官方的文档以及考古了解到的 Windows 对全屏应用的优化,以及是如何进行的优化,方便小伙伴在撕的时候可以找到根据

GitHub 如何过滤某个作者的 MR 内容

在 WPF 开源仓库里面有大量的机器人的 MR 但是我想要了解现在 WPF 仓库有多少开发者在贡献代码,此时如何在 GitHub 中过滤某个作者的 MR 内容

GitHub Action 新上线 WPF .NET Core 自动构建模板

在很土豪的微软免费给大家提供 GitHub 的构建服务器受到了小伙伴们的一堆好评之后,微软最近推出了 WPF 的 .NET Core 版本的模板,可以快速上手 WPF 项目的自动构建,支持自动进行单元测试和打包,同时输出打包的文件

用 C# 写脚本 如何输出文件夹内所有文件名

大部分在 Windows 下的脚本都是使用 bat 或 cmd 写的,这部分的脚本对我来说可读性不好。这个可读性也是很主观的,对我来说用 C# 写脚本的可读性很强,但是换个小伙伴就不是了。在 .NET Core 下的 C# 可以通过 dotnet run 运行代码起来,此时特别适合用来写脚本

Office OpenXml SDK 文本段落允许标点溢出边界属性

在进行 PPT 解析的时候,因为 PPT 是支持在文本框里面的文本段落设置允许标点溢出边界可以在符号超过了文本框的长度,不会换行,而是显示在文本框之外

Unity3d 制作一个立体旋转相册

大概效果就是在空间放一个立方体,然后给他贴图,点击鼠标的时候切换贴图内容。按下方向键旋转立方体

手把手教你构建 WPF 框架的私有版本

在上一篇博客告诉了大家如何让 GitHub 的 Action 协助咱构建 WPF 官方源代码,但是上一篇博客只是构建成功而已,构建的输出内容还是拿不到。本文将告诉大家如何让 WPF 框架的源代码构建之后输出到私有的 NuGet 源上,方便构建出私有分支版本

Unity3d 连续按键处理和单次按键处理

某个按键按下不放叫连续按键,而仅在按下的首次处理叫单次按键处理。用途是在游戏中控制移动,例子是可以将用户点击鼠标左键时向前走一步,而点击鼠标右键时,只要按住不放就连续后退

dotnet 用 Microsoft.Diagnostics.Runtime 库写代码解析 DUMP 文件

在分析 DUMP 进行自动化调试的时候,很多时候只能通过 WinDbg 和命令行调用的方式,这样的方式很难做到灵活。同时编写各个命令行的难度也特别高,这在需要对命令行的输出进行不同的分支的判断时候,难度会更大。于是找到了 Microsoft.Diagnostics.Runtime 库,这个库提供了简单的方式,可以在 C# 里面用代码写分析 DUMP 的代码

手把手教你如何构建 WPF 官方开源框架源代码

从去年微软就将 WPF 开源了,差不多现在所有 WPF 的源代码都开源了。在学习框架的时候,我会做一些改动,期望能构建一个自己的版本进行测试。但是作为一个特别大的框架,想要构建跑起来可不是直接在 VisualStudio 里面点击一下运行就完成了,需要做很多的准备才可以。本文将一步步教你如何构建 WPF 框架源代码

Mobius 一个运行在 .NET Core 上的 .NET 运行时

一个 .NET 应用仅仅只是一块在 .NET 运行时上面运行的二进制代码。而 .NET 运行时只是一个能执行这项任务的程序。当前的 .NET Framework 和 .NET Core 运行时采用 C++ 编写,而 Mobius 是一个使用 C# 重写的 .NET 运行时,重写包括 JIT 编译和 GC 等,这些逻辑都将和 C++ 无关

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

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

Roslyn 如何使用 MSBuild ZipDirectory 压缩文件夹

在 csproj 文件或在 NuGet 的 Targets 文件中可以通过 Target 调用 ZipDirectory 任务用来制作压缩包,在构建的时候,可以用这个方法将某个输出文件夹等内容压缩输出

Windows 核心编程笔记 Direct2D 比 GDI 快的一部分

每次看圣经都有不同的收获,在阅读了内核相关的内容,发现了有从用户模式和内核模式切换的角度说明 Direct2D 比 GDI 快的一部分。但这不是说明 Direct2D 一定比 GDI 快,而是在应用程序消费在用户模式和内核模式切换的耗时这一部分是 Direct2D 更少

WinForms 下的高性能笔迹方法

在 WPF 中可以通过 StylusPlugIn 的方式快速从触摸线程拿到触摸数据,而 WinForms 没有这个机制,但是可以通过 Microsoft.Ink 组件和 WPF 相同在 RealTimeStylus 服务拿到触摸点

WPF 如何在静态资源定义字体大小

默认的 WPF 的字体大小的单位是像素,如果想要将字体大小使用 pt 点表示,写在 xaml 里面是直接添加 pt 后缀。但是此时如果在静态资源尝试定义的时候写上了 pt 将会在运行的时候提示无法转换

WPF 触摸底层 PenImc 是如何工作的

在 WPF 里面有其他软件完全比不上的超快速的触摸,这个触摸是通过 PenImc 获取的。现在 WPF 开源了,本文就带大家来阅读触摸底层的代码,阅读本文需要一点 C# 和 C++ 基础