自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

lindexi

好多时间打出来代码没有bug

原创 GitHub 的 Action 如何禁用

我 Fork 了小伙伴的 ant-design-blazor 仓库,这个仓库设置了每天自动同步样式,这个 Action 用到了源仓库的密钥,在我 Fork 的仓库一定跑不通过,于是每天我就收到一次构建不通过的信息。本文告诉大家如何禁用自己 Fork 的某个仓库的 Action 的执行 这是我...

2020-05-25 16:54:09 14 0

原创 dotnet Microsoft.Recognizers.Text 超强大的自然语言关键词提取库

本文和大家介绍一个使用超级简单,但是功能特别强大的自然语言关键词提取库,可以根据输入的自然语言提取出里面的信息。例如我在一句话里面说了哪些数值变量或者说了手机号码等 先看看下图的一个效果,下图是尝试识别一句话里面的数值信息 新建一个 WPF 项目,大概运行效果如下 先编辑 cspro...

2020-05-24 16:04:14 117 0

原创 dotnet 配合 GitHub 的 Action 做自动推 Tag 时打包 NuGet 包

被微软收购的 GitHub 越来越好用,拥有大量免费的工具资源和构建服务器资源,再加上私有项目的无限制使用,我有大量的项目都在向 GitHub 迁移。通过 GitHub 的 Action 的自动构建,可以用上微软土豪的服务器资源,进行自动化测试和构建。对于 CBB 来说,发布就是打出 NuGet ...

2020-05-24 16:03:57 118 0

原创 dotnet CBB 为什么决定推送 Tag 才能打包

通过推送 Tag 才打 NuGet 包的方法的作用不仅仅是让打包方便,让打包这个动作可以完全在本地执行,无需关注其他系统的使用步骤。更重要的是可以强制每个可能被安装的 NuGet 包版本都能有一个和他对应的 Tag 号,原因是为了解决回退到某个版本发现有一个坑,这个坑是因为某个依赖库的版本问题,此...

2020-05-24 16:03:10 74 0

原创 WPF 通过 InputManager 模拟调度触摸事件

在 WPF 中,框架可以分为两个部分,一个是渲染,另一个是交互。交互的入口是在 InputManager 里面,而实际的交互实现需要通过渲染布局和交互的路由事件才能完成。在输入管理提供了调度事件的方法,这个方法可以被传入路由事件,传入的路由事件将会被调度到路由事件指定的元素上进行触发。本文告诉大家...

2020-05-23 16:02:34 84 0

原创 如何参与 .NET 的开发和设计

现在 dotnet 属于 dotnet 基金会,所有开发者都可以向 dotnet 贡献代码和参与 .NET 的设计,参与路线决策。本文来告诉大家一些基本玩法,带着小伙伴们入坑 注意哦,参与 dotnet 开发是没有金钱的收益的哈 阅读本文你能了解: 在哪里参与 dotnet 的设计和开发 ...

2020-05-23 16:01:29 87 0

原创 C# dotnet TypeForwarding 的用法

在 CLR 中提供这样的支持,某个类从程序集 A 放到了程序集 B 里面,可以通过一些黑科技让类型就像原本就在程序集 A 一样。用这个方法可以比较好的解决兼容性的问题 例如我写了一个程序集 A 里面有一个 Foo 类,后续我发现这个类其实应该放在程序集 B 里面 如果我直接移动到程序集 B 里...

2020-05-22 16:47:49 46 0

原创 MSBuild 输出日志可视化工具 MSBuild Structured Log Viewer 简介

感谢 Vatsan Madhavan 小伙伴推荐的 MSBuild 输出日志可视化工具,这个工具可以使用漂亮的 WPF 界面预览 MSBuild 复杂的输出内容 这是一个完全开源的工具,请看 KirillOsenkov/MSBuildStructuredLog: A logger for MS...

2020-05-22 16:03:08 47 0

原创 dotnet OpenXml SDK 形状填充渐变色的主题色

在 Office 文档的一些有趣的设计,颜色和画刷是可以继承的,这个继承包括了属性的继承。在形状填充里面使用的渐变色是可以一部分属性放在主题里面,主要找到主题里面的画刷,替换掉形状自己定义的内容,才是形状的画刷 我拿到一份有趣的课件,从这份课件的表现上,可以找到在一个 Shape 元素里面的...

2020-05-21 16:02:28 62 0

原创 WPF 画布工具栏的可扩展设计

我在写一个和 PS 差很多的工具,这个工具中间有一个画布,而我需要写一个扩展很好做的工具栏集合,这个工具栏设计上需要支持可以让小伙伴愉快的拆卸,功能足够独立,使用方便。本文就来告诉大家我的这个设计方案 大概的软件的界面如下图 我期望在代码上,这个库可以方便被大家使用,而小伙伴使用的时候最多...

2020-05-21 16:01:44 148 0

原创 dotnet Multi-platform App UI 多平台应用 UI 框架简介

现在可以使用 .NET 构建一切应用。富有生产力的 .NET 是当前数百万的开发者选择这个平台的理由。在 .NET 5 微软统一了整个 .NET 平台,将 .NET Core 和 Mono 以及基于 Mono 的 Xamarin 放在一起,于是就可以使用相同的一个 BCL 基础库和 SDK 工具链...

2020-05-20 16:02:37 55 0

原创 白板类应用的模式交互设计方案
原力计划

在一个白板类应用的交互中一定会涉及到模式之间的更换和交互冲突。白板类软件的交互模式一般包含了笔迹书写模式,选择模式,擦除笔迹模式等。多个模式之间存在切换,而切换可以发生在某个模式执行过程,如需要在白板软件里面支持笔迹书写功能,在书写的过程打断进入笔迹的擦除模式。本文告诉大家我所在团队的白板内核的模...

2020-05-19 16:02:26 193 0

原创 分形和图论网络
原力计划

其实这是一个古老的话题,我用10分钟和你讲一段古老的故事。本文没有公式也没有前置的知识,只是一个有趣的故事。读这个故事能够消耗你几分钟,听着玩就可以,千万不要思考 很久之前,有一群数学家想出了图论的概念,啥是图论呢,他和网络有什么关系呢?其实这里用到的仅仅只是图论里面的一丁点东西,最简单的图...

2020-05-18 16:43:55 221 0

原创 WPF 基于 Azure 的认知服务 情绪分析 语言检测 关键短语提取

本文主要是来安利大家基于 Azure 的认知服务,主要是文本认知服务,可以做到分析输入文本的情绪,以及判断当前输入文本所属语言等功能 本文分为两个部分 ,一个就是在 Azure 上的配置,另一个就是 WPF 端的使用 在 Azure 上我用的是 世纪互联 的一块钱订阅,可以用一块钱订阅一个月的...

2020-05-18 16:03:37 69 0

原创 WPF dotnet core 的 Blend SDK Behaviors 库

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

2020-05-17 16:00:34 54 0

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

本文告诉大家在一个连续的 commit 树中统计两个 commit 之间的差异的 commit 数量,也就是存在 A commit 存在而 B commit 不存在的 commit 的数量 可以使用下面代码统计两个 commit 或分支之间的差异的次数 git log --oneline A ...

2020-05-15 16:03:18 69 0

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

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

2020-05-14 16:03:49 72 0

原创 Azure 无服务器 Function 函数计算服务 dotnet core 3.1 创建和部署入门

本文用的是 世纪互联 的 Azure.cn 版本,这个版本因为是在国内,所以网速会快超级超级多。使用 世纪互联 的版本需要一块钱哦,用一块钱就能进入一个月的免费试用。本文主要告诉小伙伴如何使用 Azure 无服务器 Function 函数计算服务 本文会偏向于操作,而且仅仅是一条龙下来没有其他...

2020-05-13 16:03:18 135 0

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

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

2020-05-13 16:03:17 57 0

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

在解析 PPT 文档的时候,文本是比较复杂的一部分,而因为很多有趣的坑,即使是微软大法也有一些诡异的设计,例如项目符号的是否显示 在阅读本文之前,我期望小伙伴是了解基础的解析 Office 的方法。在使用 OpenXML SDK 解析的时候,只需要开发 10 分钟就完成了整个 PPT 的解析...

2020-05-12 16:03:16 123 0

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

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

2020-05-10 16:02:06 95 0

原创 dotnet OpenXML SDK 文本占位符解析

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

2020-05-10 16:00:44 74 0

原创 C# dotnet 自己实现一个线程同步上下文

昨天鹏飞哥问了我一个问题,为什么在控制台程序的主线程等待某个线程执行完成之后回来,是在其他线程执行的。而 WPF 在等待某个线程执行完成之后,可以回到主线程执行。其实这是因为在 WPF 和 WinForms 和 ASP.NET 框架里面都自己实现了线程同步上下文,通过线程同步上下文做到调度线程执行...

2020-05-09 16:03:04 108 0

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

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

2020-05-08 16:01:55 72 0

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

本文只是告诉大家如何计算缩放之后的宽度和高度,不包含实际的图片缩放方法 如下图,我要将图片的大小进行等比缩放,此时我要求图片的宽度和高度大于最小尺寸,但是要求宽度和高度都不大于最大尺寸,如果这两个规则冲突,优先满足不大于最大尺寸 按照规则可以看到,如下图,图片的宽度等于最大宽度了,此时虽然...

2020-05-07 16:02:55 86 0

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

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

2020-05-04 16:02:01 143 0

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

什么是 Power Query 功能?这是一个数据连接技术,可以用来发现、连接、合并、提炼数据用来满足数据处理需要。这个技术已经开发了很多年了,主要是提供给 Excel 和 PowerBI 桌面版使用。这个技术现在是作为 Windows 下的应用功能,通过 C# 托管在 .NET Framewor...

2020-05-02 16:02:40 127 0

原创 Windows 窗口样式 什么是 WS_EX_NOREDIRECTIONBITMAP 样式

我觉得我可以加入历史博物馆了,加入微软历史博物馆,本文也是和大家吹历史的博客 简单说这个 WS_EX_NOREDIRECTIONBITMAP 样式是 Win8 提供的,用来做画面图层混合的功能。什么是画面图层混合功能?详细请看为何使用 DirectComposition 玩法就是系统给你一个绘...

2020-05-02 16:02:31 114 0

原创 Windows 对全屏应用的优化

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

2020-05-02 16:00:47 153 0

原创 GitHub Action 新上线 WPF .NET Core 自动构建模板
原力计划

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

2020-05-01 16:02:43 108 0

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

在 WPF 开源仓库里面有大量的机器人的 MR 但是我想要了解现在 WPF 仓库有多少开发者在贡献代码,此时如何在 GitHub 中过滤某个作者的 MR 内容 在 GitHub 的 Filters 可以通过 -author 表示去掉某个作者的内容,如下面链接就是去掉机器人的 WPF 仓库的 M...

2020-04-30 16:02:15 97 0

原创 为何 WPF 对 vcruntime140 有引用

通过阅读 WPF 官方开源仓库的代码和文档,可以了解到在进行独立发布的时候会在仓库里面带上 vcruntime140 的原因 在独立发布的时候,可以在仓库里面找到 vcruntime140.dll 这个文件 这是因为 WPF 框架用到了两个使用 C++\CLI 的项目,分别是 DirectWr...

2020-04-29 16:01:02 95 0

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

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

2020-04-28 16:02:31 138 0

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

在进行 PPT 解析的时候,因为 PPT 是支持在文本框里面的文本段落设置允许标点溢出边界可以在符号超过了文本框的长度,不会换行,而是显示在文本框之外 在 PPT 里面可以在段落设置允许标点溢出边界请看下面 在段落属性里面,如下面代码 <a:ppr fontalgn="aut...

2020-04-27 16:03:38 87 0

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

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

2020-04-26 16:43:57 93 0

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

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

2020-04-25 16:02:24 93 0

原创 手把手教你如何构建 WPF 官方开源框架源代码
原力计划

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

2020-04-24 16:02:56 100 0

原创 Mobius 一个运行在 .NET Core 上的 .NET 运行时
原力计划

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

2020-04-23 16:02:01 164 0

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

在 WPF 中,如果想要使用代码控制,让某个窗口作为当前用户的输入的逻辑焦点的窗口,也就是在当前用户活动的窗口的最上层窗口,默认使用 Activate 方法,通过这个方法在大部分设备都可以做到激活窗口 但是在一些特殊的设备上,使用下面代码调起窗口只是在任务栏闪烁图标,而没有让窗口放在最上层 w...

2020-04-22 16:02:52 170 0

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

在 csproj 文件或在 NuGet 的 Targets 文件中可以通过 Target 调用 ZipDirectory 任务用来制作压缩包,在构建的时候,可以用这个方法将某个输出文件夹等内容压缩输出 使用 ZipDirectory 有两个必要的属性,一个是 DestinationFile 表...

2020-04-22 16:02:13 81 0

提示
确定要删除当前文章?
取消 删除