lindexi

林德熙 - Windows 10 App Developer

林德熙

一些好用的 dotnet tool 工具

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

创建CBB心得

本文来和大家分享制作 CBB 公共组件的一些心得

dotnet tool 自动找到项目里面重复的 NuGet 依赖项

使用新的 SDK 风格的 csproj 的时候,允许 NuGet 包进行依赖传递。意思是如果我 A 项目安装了库 L 那么如果有 B 项目引用 A 项目,那么自动 B 项目也就安装了库 L 而不需要项目 B 再次手动安装。也就是如果此时的 B 项目里面也加上了 L 库的安装,那么这个安装就是多余的。本文安利大家一个工具,可以自动了解有哪些项目的哪些库是多余安装的,通过依赖传递就能安装上,不需要手动安装,可以删除

dotnet OpenXML SDK 形状的 rect Shape Text Rectangle 属性对文本框的坐标影响

在 Office 里面,对于形状,可以通过 a:rect 指定文本框的坐标

WPF 禁用实时触摸

微软想把 WPF 作为 win7 的触摸好用的框架,所以微软做了很多特殊的兼容。为了获得真实的触摸消息,微软提供了 OnStylusDown, OnStylusUp, 和 OnStylusMove 事件。 本文告诉大家如何使用代码禁用 WPF 的触摸消息,解决一些问题。

WPF 开机启动因为触摸初始化锁住界面显示

现象是设置 WPF 开机启动的时候,概率界面不显示,进程已经起来,同时占用内存极小。通过 dump 或附加调试可以看到主进程带等待触摸线程的回应

WPF 客户端开发需要知道的触摸失效问题

在说 WPF 开发的时候,如果开发的应用是触摸应用,那么熟悉的小伙伴会说到触摸失效问题。从分类上触摸失效有系统的触摸失效,应用程序的触摸失效,同时触摸失效指的不是触摸没反应,本文详细告诉大家什么是触摸失效

为什么 WPF 软件在 win7 启动时会尝试调起 wisptis 进程

我看到一个问题是在 win7 系统上,如果开机启动的软件是 WPF 软件,而这个 WPF 软件在系统的 wisptis 进程启动之前就启动了,那么 WPF 将会调起 wisptis 进程。而在 wisptis 进程已经启动完成,此时启动 WPF 进程不会再打开新的 wisptis 进程。但是被 WPF 启动的 wisptis 进程存在这样的问题,在触摸屏上 win7 的双指打开右键菜单等功能不可用

WPF 测试触摸设备发送触摸按下和抬起不成对

我最近拿到一个显示器,这个设备在触摸的时候总是丢笔,我通过本文的程序测试这个设备是否触摸的按下和抬起不成对

WPF 模拟触摸设备

在 WPF 中触摸只是框架的一层,可以通过代码模拟触摸

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

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

WPF 如何确定应用程序开启了 Pointer 触摸消息的支持

因为 WPF 在开启 Pointer 和没有开启的基础表现几乎相同,因此从业务层很难了解到当前是否开启了 Pointer 消息。本文从开发者的角度,通过 Windows 消息判断当前是否开启 Pointer 支持

win10 支持默认把触摸提升 Pointer 消息

在 WPF 经常需要重写一套触摸事件,没有UWP的Pointer那么好用。 如果一直都觉得 WPF 的触摸做的不好,或想解决 WPF 的触摸问题,但是没有方法,那么请看下面。

WPF 多指触摸拖拽窗口 拖动修改窗口坐标

在 WPF 中,如果是鼠标点击拖动窗口坐标,可以调用 Window 的 DragMove 方法,但是如果是触摸,就需要自己调用 Win32 的方法实现

WPF 底层 从手指触摸屏幕到笔迹在屏幕显示中间的步骤

整个 WPF 就是一个UI框架,一个 UI 框架最重要的是 交互 和 显示 部分,而书写这个功能将会完全贯穿 WPF 整个框架的功能。本文非入门级博客,本文包含了大量链接博客,阅读本文你将会了解从用户手指触摸屏幕到最终屏幕打印出笔迹的应用程序执行的步骤

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

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

WPF 从触摸消息转触摸事件

在 WPF 程序可能因为一些坑让程序触摸失效,如果此时还可以收到系统的触摸消息,那么可以通过从触摸消息转触摸事件解决程序触摸失效但不适合所有触摸失效程序

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

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

WPF 触摸到事件

本文从代码底层告诉大家,在触摸屏幕之后是如何拿到触摸点并且转换为事件

WPF 触摸屏应用需要了解的知识

我从 2017 进入大屏触摸这个行业,主要是做桌面软件这一块。在大屏交互平板这个行业里面的还能看的上去的应用,都是使用 WPF 做的。本文就来和大家聊聊在触摸屏应用开发的时候需要了解的软硬件知识。阅读本文你将能大概了解这个行业的一点知识

dotnet OpenXML 修复 Office 文档里面的百分比内容包含百分号

我在解析一个 PPT 文档的时候,发现了这个 PPT 文档的背景色的透明度百分比的字符串里面包含了百分号,而不是一个 OpenXml 里面的百分比单位

C# GUID ToString

最近在看到小伙伴直接使用 Guid.ToString 方法,我告诉他需要使用 Guid.ToString(“N”) 的方式输出字符串 ,为什么需要使用 N 这个参数呢,因为默认的是参数 D 在输出的时候会出现连字符

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

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

dotnet C# 将 Byte 二进制数组使用不安全代码快速转换为 int 或结构体数组

我在写一个有趣的 WPF 应用,我会不断收到从硬件发过来的数据,这些数据被使用 Byte[] 数组进行传输。我想要使用最快的方法转换为我的 int 数组或者转换为结构体数组,此时可以使用不安全代码的方式转换

dotnet 5 静态字段和属性的反射获取 没有想象中那么伤性能

在最近在做 WPF 框架开发的时候,看到了在 WPF 的 StaticExtension 里面,有部分逻辑采用了反射的方法去获取静态字段和静态属性。此时我第一个反应就是这部分逻辑的性能有锅,于是尝试了进行加上缓存来优化。但是在使用了 Benchmark 进行性能测试的时候发现了,其实加上了缓存的性能反而更差,也就是说在 dotnet 5 里面的反射获取静态字段和属性的性能没有想象的伤性能

WPF UncommonField 类型是什么

本文告诉大家一个黑科技,这个黑科技在 .NET 框架外无法使用,这就是 UncommonField 类。下面将会告诉大家这个类有什么用。

dotnet 读 WPF 源代码笔记 XAML 创建对象的方法

在 WPF 中,在 XAML 里面定义的对象的创建,实际上不是完全通过反射来进行创建的,在WPF框架里面,有进行了一系列的优化

PowerShell 实现 curl 的用户名和密码逻辑

在使用 curl 时,可以采用 -u 加上用户名和密码,这个对应在 PowerShell 也就是不到 10 句话的事情

C# dotnet 编写 curl 的用户名和密码逻辑

在使用 curl 时,可以采用 -u 加上用户名和密码,这个对应在 C# 里面也是两句话的事情。只是在 curl 里面封装好了,我通过工具人协助解决,于是就在这里记录一下

dotnet 自动迁移 VS 2017 以前的 csproj 转为 dotnet core 的 SDK Style 风格工具

本文来安利大家一个特别好用的工具,可以自动将 VisualStudio 2017 以前版本创建的 Franken-proj 格式 的 csproj 项目文件转换为 dotnet core 的 SDK Style 风格的csproj 项目文件的工具

dotnet 单元测试 Mock 让一个对象继承多个接口

在使用 Mock 的时候,可以设置一个 Mock 的对象继承多个接口,而不需要自己定义一个接口去继承其他的多个接口

WPF 框架开发 WPF 的构建在哪使用到 Perl 工具

在构建 WPF 开源仓库的时候,需要先搭建 Perl 环境,此时大家是否想了解在 WPF 构建的哪里用到 Perl 工具

WPF 框架开发 更改 API 之后让 CI 重新创建 API 兼容检查基准

本文是记录在开发 WPF 框架遇到的问题。 在 WPF 框架里面,限制了 API 的变更,所有关于 API 的变动都会触发 API 兼容检查。只有在明确此 API 变更是合理的之后,才能被接受更改。而此兼容判断将会让一些本地构建失败,本文将告诉大家如何使用官方的方法重新创建 API 基准,让本地构建通过

WPF 框架开发 加入 InternalsVisibleToAttribute 特性让其他程序集可以访问 internal 权限成员

在 WPF 框架开发中,其实很少有开发者有足够的勇气去更改现有的框架逻辑,因为 WPF 的功能十分庞大,很难测试全。更多的开发都是加功能以及开放已有功能。整个 WPF 框架的大体设计是十分好的,可以在框架里面遵循对修改关闭的原则,定制化更多的是做注入,调用 internal 权限成员 本文告诉大家如何给 WPF 框架加入 InternalsVisibleToAttribute 特性让其他程序集可以访问 internal 权限成员