lindexi

林德熙 - Windows 10 App Developer

林德熙

WPF 从最底层源代码了解 AllowsTransparency 性能差的原因

当前的 WPF 的源代码完全开放,本文将从最底层的 WPF 代码告诉大家为什么设置了 AllowsTransparency 之后性能会变差,以及 WPF 透明的原理

dotnet OpenXML SDK 形状的翻转与旋转

在 OpenXML 的 PPT 元素,形状的翻转与旋转是有逻辑关系,本文来和大家聊聊形状的翻转和形状的旋转的关系

win10 uwp 字符文本转语音声音文件方法

在 UWP 中,支持将传入的字符串文本内容转换为音频语音,可以将这个语音声音通过 MediaElement 播放,或者将这个音频保存到文件里面

开源项目

这是我收藏的开源项目

Xamarin iOS 部署项目提示 Failed to register bundle identifier 失败

这是我在开始部署其他小伙伴的 Xamarin 项目时,在 VS 上提示的失败如下: Failed to register bundle identifier: The app identifier “com.walterlv.CloudKeyboard” cannot be registered to your development team because it is not available. Change your bundle identifier to a unique string to try again 。 这个提示的提示就是 Bundle Identifier 不对,原因有很多个,本文将一一告诉你

Xamarin iOS 切换开发者账号之后的签名标识和预配配置文件更新方法

其实这一篇和 Xamarin 开发几乎没有关系,这是苹果开发的一个坑。在原有开发者账号下的设备上,切换为另一个开发者账号,此时的部署也许会找错 预配配置 文件和证书。苹果:渣渣开发者,这是特性

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

本文收集我写的 Office 解析相关博客

Office 文档解析 文档格式和协议

本文讨论的 Office 文档指的是 Office 2007 及以后的 PPTX 和 xlsx 等格式的文件。在 Office 2007 之前使用的不公开标准的二进制格式定义。在 Office 2007 之后的文档格式使用 OOXML 国际标准定义,本文将告诉大家这个标准的协议和格式

Xamarin iOS 部署版本大于手机的系统版本

我觉得苹果肯定会坑我,如果我敢更新我的手机系统的话。苹果觉得像我这样的开发者就应该拖出去打靶,整个手机没几个应用是从应用商店下载的。但是作为开发者,我在使用 Xamarin 部署我的云输入法,在第一步创建的时候需要我使用 XCode 新建一个项目,而新建的项目默认都是需要使用更新版本的系统,此时部署将会失败。本文告诉大家一个简单的方法解决这个问题

WPF 简易手绘笔迹支持回放的方法

手绘笔迹实际上就是需要支持回放的,手绘笔迹指的是在应用程序里面支持回放出手绘出来的笔迹。本文来告诉大家一个简易的方法

Xamarin Forms 构建 WPF 版项目失败提示 XamlC error XFC0000 错误

在 Xamarin Forms 从 4.7 到 4.8.0.1560 版本,在 Xamarin Forms 构建 WPF 版项目也许会提示 XamlC error XFC0000 : Cannot resolve type “Application” 构建失败

WPF 开发

本文:我遇到的WPF的坑

.NET 官方图标

在哪可以找到 dotnet 官方权威的图标?正统的 .NET 图标是哪个? 本文来回答大家这几个问题

dot net core 使用 IPC 进程通信

本文告诉大家如何使用dot net core 和其他进程进行通信。

WPF 手绘对称图形控件

本文来安利大家一个我刚做的控件,这个控件支持触摸下多指进行笔迹绘制,绘制过程中将会对称显示出水平和垂直翻转的笔迹。可以用来绘制对称图形。当然了,本文还会告诉大家这个控件是如何制作的

dotnet 在 GitHub 的 Action 上部署自动代码编码规范机器人

我们的项目中会包含有很多文件,但是可能我们没有注意到的,我们的文件的编码不一定是 UTF-8 编码,这就可能让构建出来的应用程序在别人电脑运行时出现乱码,或者别人拉下来代码,却发现代码里面的中文都是乱码。为了解决文件编码的问题,咱需要一个编码规范工具,本文将告诉大家在 GitHub 上仓库,可以利用 GitHub 的 Action 部署自动代码文件编码规范的机器人,这个机器人可以自动协助咱规范文件的编码规范。可以设置为每次上传代码的时候,自动帮忙设置文件编码为 UTF-8 编码。或者在每次代码合并到主分支之后,机器人将会尝试修复文件的编码,如存在文件需要修复的,那机器人将会创建一个代码审查

dotnet tool 文件编码规范命令行工具

在咱项目里面,大家是否有关注过文件的编码,一个文件是作为 Ascii 编码保存的,还是作为 GBK 编码保存的,还是 UTF8 编码保存的?不同的编码是否对应用有影响?其实是会有影响的,在 C# 里面的字符串常量等都会受到文件编码的影响。例如我的应用主输出是 UTF8 编码,此时我在二进制可执行文件里面保存的输出字符串的二进制是采用 GBK 编码的内容,在一些用户的设备上也许就会显示出乱码 本文来安利大家一个 dotnet 工具,这个工具可以用来协助大家找到项目里面的编码不规范文件

C# 很少人知道的科技

本文来告诉大家在C#很少有人会发现的科技。即使是工作了好多年的老司机也不一定会知道这些科技,如果觉得我是在骗你,那么请看看本文的内容

dotnet OpenXML 幻灯片 PPTX 的 Slide Id 和页面序号的关系

在使用 OpenXML SDK 进行 Office 文档的解析时,对幻灯片 PPTX 文档的页面解析也许会遇到页面顺序的问题,本文告诉大家在 Office 文档里面页面的序号和顺序之间的关系以及如何读取页面序号

上海展盟网络科技有限公司的 gamebox 组件注入进程导致软件崩溃

在某些用户的设备上,会发现自己的软件会在启动之后过一段时间就崩溃了,一个可能的原因是自己的软件被其他广告软件注入了,如 上海展盟网络科技有限公司的 gamebox 组件

NuGet 如何设置图标

在找 NuGet 的时候可以看到有趣的库都有有趣的图标,那么如何设置一个 NuGet 的图标?

dotnet 基于 dotnet format 的 GitHub Action 自动代码格式化机器人

是不是大家也会觉得代码审查里面审查代码格式化问题是无意义的,但是不审查又觉得过不去?是否有个专门的工具人,用来协助修复代码格式化的问题?本文来安利大家一个特别好用的方法,使用 dotnet 完全开源的专业格式化工具 dotnet format 配合 GitHub 的自动构建 Action 做的自动代码格式化机器人,这个机器人可以被指定到特定时机,如每天晚上或者每次代码合并等,进行代码格式化,格式化完成之后,可以选择直接推送或者提代码审查

WPF 非客户区的触摸和鼠标点击响应

默认在 WPF 里面是不响应非客户区的鼠标事件,但响应触摸事件

dotnet 让 C# 可以通过动态生成 HLSL 使用 DX12 的 GPU 并行计算库 ComputeSharp 的简介

本文来安利大家一个超强的库,这个库可以让你的 C# 代码利用上 GPU 显卡的性能,进行一些并行计算。这个库是基于 DirectX12GameEngine 的 ComputeSharp 库。在这个库里面将会动态生成 HLSL 代码,使用着色器的方式在 GPU 上跑起来

dotnet 使用 Interlocked 实现一个无锁的快速无序仅写集合

在 dotnet 里面,可以使用 Interlocked 进行原子命令更改 int 等的值,利用这个特性可以在一个固定足够长长度的数组里面,让多线程无锁等待写入值。因为没有锁的存在,无法保证读取时的安全,因此这样的集合只能被设计为只写的集合,只有在业务上完成了所有的写之后,才能作为可读的集合取出来

dotnet 多线程禁止同时调用相同的方法 禁止方法重入调用 双检锁的设计

大家在使用多线程的时候,是否有关注过线程安全的问题。如果咱的代码在使用多线程时,在相同的时间有多个线程同时执行相同的方法,此时也许就存在数据安全的问题,如多个线程之间对相同的内存进行同时的读取和修改。而让方法在多线程调用中,相同的时间会被多个线程同时执行某段代码逻辑的技术称为方法重入调用技术,而禁止方法被同时调用也就是禁止方法重入调用。在 dotnet 里面有多个方式可以做到禁止方法重入调用,本文将告诉大家如何做到禁止方法重入调用

读书笔记 dotnet 什么时候进行垃圾回收

是否有小伙伴好奇如果没有在代码调用垃圾回收,那么框架会在什么时候调用垃圾回收。本文是读还没出版的伟民哥翻译的 .NET内存管理宝典 - 提高代码质量、性能和可扩展性 这本书的笔记

dotnet 使用 SourceLink 将 NuGet 链接源代码到 GitHub 等仓库

在发布 CBB 作为 NuGet 包的时候,我期望开发者在使用我的库进行调试,可以自动链接代码到对应打包的 GitHub 上的代码,可以从本地拿到对应的源代码进行调试。这样的调试方式对于开源项目来说,将会很方便

dotnet 构建 SourceRoot items must include at least one top-level item when DeterministicSourcePaths is true 失败

在使用 dotnet 构建的时候提示 error : SourceRoot items must include at least one top-level (not nested) item when DeterministicSourcePaths is true 构建失败

WPF 已知问题 窗口在屏幕外创建将不会刷新渲染

本文告诉大家一个 WPF 的已知问题,如果窗口在创建的时候,设置在屏幕外,那这个窗口将不会进行实际的渲染,将这个窗口从屏幕外移到屏幕内的时候,将会出现窗口内容的一次闪烁。换句话说就是存在窗口内容的重渲染

NuGet 更新库新版本的缓存问题

我有一个 NuGet 库有新的版本,但是我的服务器速度不够快,此时我第一次使用 NuGet 还原找不到库。在我服务器索引完成之后,再次使用 NuGet 会依然找不到这个库,而此时服务器准备完成。这是 NuGet 的缓存的坑

dotnet 进行二进制差分压缩文件

我需要对一个文件做二进制差分压缩,我有一个文件的起始点,在之后的每次更改我都记录文件的二进制的差分,这样就可以通过起始点和差分文件计算修改后的文件。通过二进制差分可以用来提高文件保存磁盘读写速度,也可以减少软件自动更新需要的文件大小

二进制数据差异算法 用于减小OTA内容

在当前客户端软件的更新功能,需要在每次客户端升级的时候,下载更新的内容。而客户端下载内容的多少将会决定用户的下载时长以及服务器流量费用。所以我在不断找一个算法,让客户端更新的时候下载的内容更少。在弱网环境,上传和下载的速度受限,在保证每次数据同步的完整下,让每次传输的内容更少也是我最近研究的内容

dotnet 开发的单代码仓库和多代码仓库的优劣

在很多大团队开发的时候,将需要用到很多项目的组合开发一个软件,一个软件需要用到的项目有很多个,很少会用到一个项目就能做到。但多个项目一起开发,在配置管理和团队管理有不同的策略,一个就是让项目拆分为多个代码仓库,另一个就是将这些项目合在一个代码仓库。两个策略不能说哪个更好,本文和大家分享我所在的团队和我参与的其他团队的策略

C# 写一个24点计算程序

我在和小伙伴玩 24 点这个游戏,但是我的计算速度比他慢,于是我就写了一个作弊的程序