- 博客(37)
- 资源 (174)
- 问答 (1)
- 收藏
- 关注
原创 dotnet OpenXML 元素 cNvPr NonVisual Drawing Properties 重复 id 标识处理
使用 OpenXML 的格式的 Office 文档的元素,使用 p:cNvPr Non-Visual Drawing Properties 的 Id 属性作为标识,在标准协议这个标识是唯一的,但实际很多文档都存在重复的标识。本文告诉大家在使用 Office 2016 版本测试重复 id 的行为在 OpenXML 的元素的标识一个好的设计是使用 uint 作为标识符,这样做的兼容能力更强。因...
2020-09-29 00:58:28 415
原创 dotnet OpenXML 元素 cNvPr NonVisual Drawing Properties 的属性作用
本文收集元素属性 cNvPr Non-Visual Drawing Properties 的属性的作用本文的 Non-Visual Drawing Properties 也就是在 OpenXML 文档里面的 cNvPr 代码,在 ECMA 376 的 20.2.2.3 文档有详细说明在形状的 Non-Visual Drawing Properties 使用 p:cNvPr 表示,在图片使...
2020-09-29 00:58:28 563
原创 dotnet tool 工具安装提示 Could not find a part of the path 安装失败
我在安装 dotnet tool 工具时发现所有的工具都安装失败,全部都提示 Could not find a part of the path 安装失败。我重新安装了 dotnet SDK 也没有用,更新到了3.1.402 版本也没有修复我在 GitHub 开源了 dotnetcampus.DotNETBuildSDK 项目,请看 https://github.com/dotnet-ca...
2020-09-27 01:31:28 1504
原创 C# dotnet 高性能多线程工具 ExecuteOnceAwaiter 只执行一次的任务
本文将安利大家一个好用的工具,用来解决这样的问题,我有一个任务,要求这个任务在执行过程中不能被重入,只有在任务执行完成之后才能重置状态重新执行一次。换句话说就是在此任务正在执行过程中,不能重复进入此任务。同时在任务执行过程中,不能重置任务状态。在任务执行完成之后,可以保存任务的状态,直接返回任务结果。在任务执行完成之后,可以调用重置状态方法,让任务可以再次重新调用本文的这个 Execute...
2020-09-27 01:31:28 541
原创 NuGet 命令行上传找不到 snupkg 文件
在 NuGet 提供符号 NuGet 库的支持,在默认上传将会同时上传符号库。在 NuGet 上传文件将会默认将 snupkg 符号文件上传
2020-09-26 08:49:13 507
原创 WPF 最简逻辑实现多指顺滑的笔迹书写
只需不到 150 行代码就能实现一个支持多指顺滑的笔迹书写的应用。当然,这个应用除了笔迹书写外,没有其他任何功能。本文将不会使用 InkCanvas 而是使用更底的方法,通过 Stroke 进行绘制
2020-09-26 08:48:09 1229 2
原创 C# dotnet 的锁 SemaphoreSlim 和队列
本文主要是试验在顺序进入等待 SemaphoreSlim 的任务是否会按照顺序经过锁执行
2020-09-26 08:46:18 749
原创 WPF 使用 HandyControl 给 ListView 添加漂亮的表头效果
本文将来安利大家一个很好用的 UI 控件库,著名的 HandyControl 库。在想要给 ListView 添加一个表头,同时想要这个 ListView 在没有美工小姐姐的帮助下也能看起来比较好看,此时就特别适合使用 HandyControl 库
2020-09-26 08:42:38 3804 2
原创 WPF 获取屏幕某个点的颜色
我在做一个笔迹性能测试工具,想要在笔迹绘制到某个点的时候输出绘制的速度,通过判断屏幕颜色修改判断笔迹绘制到哪。此时需要在不截图屏幕获取屏幕某个点的颜色
2020-09-26 08:40:33 485
原创 dotnet core 进行 XML 序列化抛出 XmlSerializers dll 文件找不到
在将原本的 dotnet framework 版本的 WPF 项目迁到 dotnet core 版本,在进行单元测试,发现在 XmlSerializer 抛出了 System.Private.CoreLib.XmlSerializers.dll 找不到的异常,其实这个只是在 XmlSerializer 的内部异常,可以忽略在 dotnet core 下,使用如下代码进行 xml 序列化,其...
2020-09-26 00:36:36 771 1
原创 C# dotnet 使用 AsyncEx 库的 AsyncLock 异步锁
本文来安利大家一个好用的库 AsyncEx 库。这个库有一个强大的功能是支持 AsyncLock 异步锁。小伙伴都知道,在 C# 里面的 lock 关键字,在 2020 年也就是 C# 9.0 都没有让这个关键字能支持锁内部添加异步方法。此时在一些需要做异步线程安全的业务就比较坑了,而 AsyncEx 库提供了 AsyncLock 异步锁的功能,可以支持在锁里面使用异步使用之前先安装 Ni...
2020-09-23 09:39:44 1522
原创 dotnet OpenXML SDK 文本占位符解析
在使用 OpenXML SDK 解析 PPT 文档的文本占位符的时候,需要对 PPT 的格式有一定的了解,尽管整个 OpenXML SDK 包括文档等都很详细。但是有一些细节文档上虽然有写,但是没有强调一下,就被我忽略了什么是文本占位符,其实这是在 PPT 添加的概念,在 PPT 里面用户可以编辑模版文件,在这里定义某个占位符文本的样式和坐标等如何制作占位符请看 PPT占位符,居然这么好用...
2020-09-23 02:27:59 733
原创 asp dotnet core 记一次应用拒绝响应调试 开启线程等待同步用光线程池
我有一个上古的库,我使用这个库用来上报日志,而刚才日志服务挂了。然后我就发现了我的应用拒绝响应了,通过 VisualStudio 断点调试可以发现线程池的线程全部被占用了。因为没有可用线程因此所有对 asp dotnet core 应用的访问全部都不会收到响应,为什么我的另一个应用日志服务挂了会让我的业务应用拒绝响应?为什么我的业务应用会使用线程池所有的线程,为什么线程池的所有线程被占用将会让应用...
2020-09-23 02:27:59 455
原创 dotnet 使用 AsyncQueue 创建高性能内存生产者消费者队列
在本机相同进程中创建生产者消费者队列,可以解决很多线程安全以及高性能需求问题。本文告诉大家如何通过在 GitHub 完全开源的 AsyncWorkerCollection 库的 AsyncQueue 类创建在内存中的高性能低资源占用的生产者消费者队列本文使用的 AsyncWorkerCollection 库在 GitHub 完全开源,请看 https://github.com/dotnet...
2020-09-22 00:49:28 898 1
原创 dotnet 双缓存数据结构设计 下载库的文件写入缓存框架
我在写一个文件下载库,这个下载库利用断点续传机制,支持多线程下载一个文件。但是文件写入只能支持单线程,我不想让网络下载需要等待磁盘写入,因此我需要先在内存做缓存,然后让磁盘写入。配合 DirectX 渲染的设计方法,采用双缓存数据结构设计,也就是有两个集合,其中一个集合用来被其他模块写入,另一个集合用来作为当前使用。此时能做到网络下载使用的集合和文件写入的集合不是相同的一个集合,因此两部分的速度差...
2020-09-22 00:49:28 387
原创 dotnet Open XML 如何判断一份 Office 文档是否被加密
在拿到一份 PPTX 文档,或一份 Word 的 docx 文档,如何判断这份文档是被加密的在 Office 里,对 pptx 文档或 docx 或 xlsx 文档的加密是将文档加密为 OLE 格式,也就是和 Office 2003 的 doc 等文档格式相同的 Ole object 格式在没加密时,是使用 OPC 格式,也就是 zip 压缩文档。但是加密之后,文档格式使用 OLE Ob...
2020-09-21 00:50:54 1074
原创 WPF 解决 Skia 因为找不到字体而绘制不出中文字符
在 WPF 使用 Skia 做渲染工具,如果绘制的中文都是方块,也许是字体的问题。字体的问题是 Skia 没有找到字体,本文告诉大家如何修复在 Skia 使用特定字体,可以使用 SkiaSharp 的 SKTypeface 方法指定 var name = "微软雅黑"; var skTypeface = SKTypeface....
2020-09-14 00:48:31 897
原创 dotnet 如何调试 SmartSql 的实际执行 SQL 语句
在使用 SmartSql 中的 SQL 语句是支持进行属性替换,在调试时如何拿到实际执行的 SQL 命令只需要在 appsettings.json 中将 LogLevel 的 Default 设置为 Debug 等级,可以在运行时看到从开发者编写的 SQL 语句加上参数的实际 SQL 语句,大概内容如下dbug: SmartSql.Middlewares.PrepareStatement...
2020-09-14 00:48:31 407
原创 dotnet 关于 SmartSql 的 SQL 语句的属性替换前缀说明
本文将告诉大家在 SmartSql 的 SQL 语句的属性前缀 ParameterPrefix 的默认值和用法以及原理用途使用 SmartSql 库的属性前缀 ParameterPrefix 能赋予 SQL 语句属性替换参数的功能,可以将 SQL 语句中的属性替换为业务方传入的参数如以下代码,在运行时将替换 @Id 为业务传入参数 <!--获取表映射实体-->...
2020-09-12 05:09:10 409
原创 WPF 漂亮的现代化控件 新 ModernWPF 界面库
这是一个在 GitHub 上完全开源的库,有十分漂亮的界面,整个都是 Win10 风,界面部分和默认 UWP 相近这个库支持了 .NET Framework 4.5 和以上的版本,以及 .NET Core 3.0 和以上的版本,可以在 Windows Vista SP2 和以上的系统运行界面如下使用方法简单,从 NuGet 上安装 ModernWpfUI 库,然后打开 App.xa...
2020-09-11 01:37:34 2451
原创 dotnet OpenXML 如何获取 schemeClr 颜色
颜色是一个大的主题,在 ECMA 376 里面用了 19 页 A4 描述了颜色,但仅是简单的描述。在 OpenXML 定义了 Scheme Color (schemeClr) 是用来表示主题的颜色,可以跟随主题的更改而更改颜色。例如我的文本设置为主题的文本颜色,那么在我更改文档主题的文本色就可以更改我的文本颜色在 OpenXML 的颜色里面,其中 Scheme Color (a:schem...
2020-09-09 01:31:08 750
原创 dotnet OpenXML 颜色变换
颜色变换是对基础颜色的相关属性的修改。 例如,透明度是与颜色相关的属性。 颜色转换被指定为任何颜色模型标签的子标签,可以在任何颜色加上颜色变换大概的写法如下<a:solidFill> <a:srgbClr val="00B050"> <a:alpha val="51000"/> </a:...
2020-09-09 01:31:08 764
原创 WPF 自己封装 Skia 差量绘制控件
使用 Skia 能做到在多个不同的平台使用相同的一套 API 绘制出相同界面效果的图片,可以将图片绘制到应用程序的渲染显示里面。在 WPF 中最稳的方法就是通过 WriteableBitmap 作为承载绘制。本文告诉大家如何封装一个支持差量绘制的控件,默认的绘制方法都是每次都是不保存上次绘制的内容,而且清空画布,重新绘制。这样的绘制方法显然效率不够高在上一篇博客里面告诉大家如何在 WPF ...
2020-09-08 00:52:41 547
原创 WPF 获取本机所有字体拿到每个字符的宽度和高度
本文主要采用 GlyphTypeface 类尝试获取每个字符的宽度和高度的值,尽管这个方法和最终 WPF 布局使用的文本的宽度和高度是不相同的,但是依然可以作为参考获取系统字体文件夹的文件系统字体文件夹放在 @"C:\Windows\Fonts" 本文不讨论用户的系统盘放在其他盘里面使用 Directory.GetFiles 可以获取所有字体文件 var fileL...
2020-09-07 01:00:22 1367
原创 dotnet 在国产 UOS 系统利用 dotnet tool 工具做文件传输
我在一台设备上安装了 UOS 系统,但是我如何在我的主开发设备上和 UOS 系统传输文件?通过 dotnet tool 工具可以完成大部分的工作,当然,使用 dotnet tool 不仅做文件传输,还能做很多特别强大的应用。本文就使用文件传输作为例子告诉大家如何使用 dotnet tool 在多个平台里面使用相同的一套技术和命令行作为工具在 dotnet 里,可以制作一个 dotnet 应...
2020-09-07 01:00:22 442
原创 Roslyn 解决 dotnet core 应用进程间引用找不到 runtimeconfig 依赖文件
我有一个强大的功能,这个功能就是在 Linux 下使用 GDI 转换 EMF 格式图片为 png 图片,但是有一些有趣的图片会让转换的进程炸掉。因此我就想让转换服务放在独立的进程,通过进程间调用,也就是命令行调用传入参数的方式,让另一个进程转换图片。而此时就会遇到一个问题,如何让这个进程也被构建,然后输出到输出路径在 .NET Core 里面,如果想要让输出文件夹包含两个不同的进程入口文件...
2020-09-05 00:56:42 1441
原创 dotnet 在 UOS 国产系统上安装 dotnet sdk 的方法
本文告诉大家如何在 UOS 国产系统上安装 dotnet sdk 的方法使用的 UOS 是 UOS 20 x64 版本,这个系统版本是基于 debian 10 的,可以使用 debian 10 的方法安装进入 UOS 系统,点击左下角的图标,也就是相当于 Windows 的开始按钮,点击终端。这里的终端就是命令行工具类似 Windows 的 cmd 工具进入 /etc/apt 文件...
2020-09-05 00:56:42 1067
原创 dotnet 在 UOS 国产系统上使用 Xamarin Forms 创建 xaml 界面的 GTK 应用
在前面几篇博客告诉大家如何部署 GTK 应用,此时的应用是特别弱的,大概只是到拖控件级。尽管和 WinForms 一样也能写出特别强大的应用,但是为了提升一点开发效率,咱开始使用 xaml 神器写界面。本文告诉大家如何在 UOS 国产系统上,通过 Xamarin.Forms 使用 XAML 写界面逻辑,构建出 GTK 应用本文将使用特别底层的方法告诉大家如何一步步创建,而不是告诉大家如何在...
2020-09-04 00:59:55 272
原创 ASP.NET Core 警惕可空类型开启之后模型校验失败
在开启 Nullable 可空类型之后,原本可以调用的 API 也许就会提示 400 BadRequest 因为传入参数不合法,模型校验失败,此时将不会进入预期的 API 函数,同时也不会在输出里面找到有用的信息在 SDK 风格的 csproj 文件开启可空类型可以添加下面代码 <Nullable>enable</Nullable>为了方便让小伙伴知道...
2020-09-03 00:28:26 5776
原创 dotnet 在 UOS 国产系统上安装 MonoDevelop 开发工具
本文告诉大家如何在 UOS 上安装 MonoDevelop 开发工具。本文使用的 UOS 是 UOS 20 x64 版本,这个系统版本是基于 debian 10 的,默认的 MonoDevelop 开发工具是没有提供 UOS 版本,但是有提供 debian 10 版本手动安装 MonoDevelop 不靠谱,本文推荐大家通过使用 debian 10 版本方法进行安装在开始之前,还需要小伙...
2020-09-03 00:28:26 634
原创 Roslyn 解决找不到 SolutionDir 属性
在旧版本的 csproj 格式也就是 Franken-proj 格式,可以使用 SolutionDir 拿到当前sln文件所在的文件夹,但是在 SDK Style 格式的项目文件,是拿不到这个属性的,本文告诉大家如何做到兼容之前的逻辑其实不是 SDK Style 拿不到 SolutionDir 属性,而是因为没有使用 sln 加入构建如我在一个项目里面的 csproj 文件添加下面代码...
2020-09-03 00:28:26 341
原创 dotnet 在 UOS 国产系统上使用 MonoDevelop 进行拖控件开发 GTK 应用
先从一个 Hello World 应用开始,试试和古老的 WinForms 一样的拖控件式开发在创建完成一个 GTK# 2.0 应用之后,咱可以试试开始拖控件的开发,当然这个开发方式开发出来的应用界面有点古老。不过作为玩还是不错的先拖入一个容器,和 WPF 一样,窗口里面的内容只允许一项,如果这一项是组件,那么意味着不能添加其他的元素,因此此时推荐使用是一个一个容器接着拖入一个按钮和一...
2020-09-03 00:28:26 477
原创 dotnet 在 UOS 国产系统上使用 MonoDevelop 创建 GTK 全平台带界面应用
本文告诉大家如何在 UOS 国产系统上开始使用 MonoDevelop 开发,通过创建 GTK# 应用,进入界面开发的第一步在开始之前需要小伙伴先安装好 MonoDevelop 工具安装完成之后,可以在开始菜单找到这个 MonoDevelop 工具打开之后,点击新建项目选择新建 GTK# 2.0 的项目,点击下一步,选择路径,加上项目名请小伙伴记录这个路径,因为 UOS 的...
2020-09-03 00:28:26 588
gtk 3.24.24 for win32
2022-08-08
鼠标光标大全1.0.0.zip
2021-08-05
Microsoft.Templates.4.1.21179.1.vsix
2021-07-21
ECMA-376.7z
2021-07-03
OpenXMLSDK v25.7z
2021-06-05
Fix WriteableBitmap hangs when source bitmap is rendered on other thread
2021-04-17
WPF 私有构建版本 2021.4.17.zip
2021-04-17
sublime_merge_build_2039_x64_setup.exe
2020-12-23
MonoFramework-MDK-6.12.0.114.macos10.xamarin.universal.pkg
2020-12-23
nuget 5.8.0.6930.exe
2020-11-16
myscript-iink-recognition-text-zh_CN 1.3.zip
2020-07-20
Docker Desktop Installer 2.3.0.3 45519 windows community.7z
2020-07-05
dotnet-sdk-5.0.100-preview.7.20319.6-win-x64.exe
2020-06-23
sublime_merge_build_2020_x64_setup.exe
2020-06-22
vsdbg-16-6-20415-1 vsdbg-linux-musl-x64.zip
2020-06-22
vsdbg-16-6-20415-1 vsdbg-linux-x64.zip
2020-06-22
aspnetcore-runtime-3.1.4-linux-x64.tar.gz
2020-05-23
DPC Latency Checker 1.4.0.zip
2020-05-19
strawberry-perl-5.28.1.1-1-win64-x64.zip
2020-04-23
Snoop 3.0.0-alpha0116.msi
2020-04-18
dotnet-runtime-3.1.2-linux-x64.tar.gz
2020-04-03
aspnetcore-runtime-3.1.2-linux-x64.tar.gz
2020-04-03
影子输入法1.5.6稳定版.7z
2020-04-03
dotnet-core-uninstall-1.0.115603.msi
2020-03-12
PowerShell.Linux.x64.7.0.0-rc.2.nupkg
2020-03-07
dotnet-sdk-3.1.102-linux-x64.tar.gz
2020-03-07
dotnet-sdk-5.0.100-alpha1-015515-win-x64.exe
2020-03-06
mono-6.6.0.161-x64-0.msi
2020-03-01
UnitySetup-WebGL-Support-for-Editor-2018.3.7f1.exe
2020-03-01
dotnet-sdk-3.0.102-win-x64.exe
2020-03-01
mono-wasm-e894d683f9f.zip
2019-11-05
mono-wasm-f5cfc67c8ed.zip
2019-11-05
microsoft.dotnet.ilcompiler.1.0.0-alpha-27527-02.nupkg
2019-10-24
我想在linux运行c#程序,请问我需要做什么?
2015-04-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人