林德熙 - 微软最具价值专家和 .NET 基金会成员
现象是设置 WPF 开机启动的时候,概率界面不显示,进程已经起来,同时占用内存极小。通过 dump 或附加调试可以看到主进程带等待触摸线程的回应
我最近拿到一个显示器,这个设备在触摸的时候总是丢笔,我通过本文的程序测试这个设备是否触摸的按下和抬起不成对
在 WPF 中触摸只是框架的一层,可以通过代码模拟触摸
默认在 WPF 里面是不响应非客户区的鼠标事件,但响应触摸事件
在 WPF 经常需要重写一套触摸事件,没有UWP的Pointer那么好用。 如果一直都觉得 WPF 的触摸做的不好,或想解决 WPF 的触摸问题,但是没有方法,那么请看下面。
在 WPF 中,如果是鼠标点击拖动窗口坐标,可以调用 Window 的 DragMove 方法,但是如果是触摸,就需要自己调用 Win32 的方法实现
整个 WPF 就是一个UI框架,一个 UI 框架最重要的是 交互 和 显示 部分,而书写这个功能将会完全贯穿 WPF 整个框架的功能。本文非入门级博客,本文包含了大量链接博客,阅读本文你将会了解从用户手指触摸屏幕到最终屏幕打印出笔迹的应用程序执行的步骤
在 WPF 程序可能因为一些坑让程序触摸失效,如果此时还可以收到系统的触摸消息,那么可以通过从触摸消息转触摸事件解决程序触摸失效但不适合所有触摸失效程序
在 WPF 中,框架可以分为两个部分,一个是渲染,另一个是交互。交互的入口是在 InputManager 里面,而实际的交互实现需要通过渲染布局和交互的路由事件才能完成。在输入管理提供了调度事件的方法,这个方法可以被传入路由事件,传入的路由事件将会被调度到路由事件指定的元素上进行触发。本文告诉大家如何模拟调度一个触摸事件
本文从代码底层告诉大家,在触摸屏幕之后是如何拿到触摸点并且转换为事件
我在解析一个 PPT 文档的时候,发现了这个 PPT 文档的背景色的透明度百分比的字符串里面包含了百分号,而不是一个 OpenXml 里面的百分比单位
最近在看到小伙伴直接使用 Guid.ToString 方法,我告诉他需要使用 Guid.ToString(“N”) 的方式输出字符串 ,为什么需要使用 N 这个参数呢,因为默认的是参数 D 在输出的时候会出现连字符
本文是我在读 WPF 源代码做的笔记
在 WPF 中,使用 Stroke 类时,可能会出现内存泄露,原因是 DrawingAttributes 的事件被监听没有释放。本文将从源代码的角度告诉大家这个内存泄露问题和如何解决
我在写一个有趣的 WPF 应用,我会不断收到从硬件发过来的数据,这些数据被使用 Byte[] 数组进行传输。我想要使用最快的方法转换为我的 int 数组或者转换为结构体数组,此时可以使用不安全代码的方式转换
在最近在做 WPF 框架开发的时候,看到了在 WPF 的 StaticExtension 里面,有部分逻辑采用了反射的方法去获取静态字段和静态属性。此时我第一个反应就是这部分逻辑的性能有锅,于是尝试了进行加上缓存来优化。但是在使用了 Benchmark 进行性能测试的时候发现了,其实加上了缓存的性能反而更差,也就是说在 dotnet 5 里面的反射获取静态字段和属性的性能没有想象的伤性能
本文告诉大家一个黑科技,这个黑科技在 .NET 框架外无法使用,这就是 UncommonField 类。下面将会告诉大家这个类有什么用。
在 WPF 中,在 XAML 里面定义的对象的创建,实际上不是完全通过反射来进行创建的,在WPF框架里面,有进行了一系列的优化
在使用 curl 时,可以采用 -u 加上用户名和密码,这个对应在 PowerShell 也就是不到 10 句话的事情
在使用 curl 时,可以采用 -u 加上用户名和密码,这个对应在 C# 里面也是两句话的事情。只是在 curl 里面封装好了,我通过工具人协助解决,于是就在这里记录一下
本文来安利大家一个特别好用的工具,可以自动将 VisualStudio 2017 以前版本创建的 Franken-proj 格式 的 csproj 项目文件转换为 dotnet core 的 SDK Style 风格的csproj 项目文件的工具
在使用 Mock 的时候,可以设置一个 Mock 的对象继承多个接口,而不需要自己定义一个接口去继承其他的多个接口
在构建 WPF 开源仓库的时候,需要先搭建 Perl 环境,此时大家是否想了解在 WPF 构建的哪里用到 Perl 工具
本文是记录在开发 WPF 框架遇到的问题。 在 WPF 框架里面,限制了 API 的变更,所有关于 API 的变动都会触发 API 兼容检查。只有在明确此 API 变更是合理的之后,才能被接受更改。而此兼容判断将会让一些本地构建失败,本文将告诉大家如何使用官方的方法重新创建 API 基准,让本地构建通过
在 WPF 框架开发中,其实很少有开发者有足够的勇气去更改现有的框架逻辑,因为 WPF 的功能十分庞大,很难测试全。更多的开发都是加功能以及开放已有功能。整个 WPF 框架的大体设计是十分好的,可以在框架里面遵循对修改关闭的原则,定制化更多的是做注入,调用 internal 权限成员 本文告诉大家如何给 WPF 框架加入 InternalsVisibleToAttribute 特性让其他程序集可以访问 internal 权限成员
有小伙伴给我报了一个坑,那就是使用我的博客写的方法,在按下 ALT+ENTER 键时,将会让屏幕黑屏。其实原因就是默认的 DX 关联了 ALT+ENTER 快捷键,进入了全屏。本文来告诉大家如何解决
本文来告诉大家如何在上一篇博客创建的窗口里面使用 Sharpdx 初始化,然后设置窗口颜色。
本文告诉大家如何在控制台使用 SharpDx 创建窗口,这是一个底层的博客,我会用很多博客告诉大家如何从控制台创建一个高性能渲染程序
我遇到了有老师给我反馈说用我的小工具去辅助编辑课件的时候,遇到了他使用 WPS 制作的文档打开失败,原因是 WPS 制作的一些文档不符合压缩文档规范。而 Office 的基于 ECMA 376 的文档,都是使用标准的 ZIP 压缩规范的文档,因此对于这些不符合压缩文档规范的文件,将会解析失败
咱可以使用 Win32 的 SetWindowPos 修改窗口的坐标和大小,此时 WPF 的窗口的 Left 和 Top 和 Width 和 Height 依赖属性也会受到影响,本文将会告诉大家在啥时候会同步更改 WPF 依赖属性的值,而什么时候不会
在使用 OpenXML 解析 Office 文档,无论是 PPT 还是 Word 还是 Excel 文档,都会使用标准方式解析。而此时的文档如果包含了错误的 Url 格式,例如不正确的邮件名的时候,将会在解析的时候出错。本文告诉大家如何修复这个问题
本文来告诉大家如何在 UWP 中修改相机的分辨率设置以及如何使用相机的功能
在集成测试中,我采用单个进程开启多个主机,可以理解为一个用例开启一次主机。但是在我使用到 SmartSql 的功能时,我发现在一个主机关闭之后,再开启下一个主机,会因为使用了相同的别名而提示 SmartSql.Alias:[SmartSql] already exist 错误。本文告诉大家如何解决此问题
本文是我在读 WPF 源代码做的笔记。在 WPF 中的 AppDomainShutdownMonitor 类是一个不开放的类,这个类当前只是给 D3DImage 类使用。在 AppDomainShutdownMonitor 提供了在应用的进程或程序域关闭的时候,进行一次通知,当前是用来清理 D3DImage 类的资源
本文提供了一个最简的方法,可以用到整个 WPF 框架里面所有 internal 内部权限的成员的方法。这是一个我自己定制的 WPF 框架,可以在此基础上构建属于自己的定制化的 WPF 框架