上一页 1 2 3 4 5 6 7 8 9 ··· 19 下一页
摘要: 笔迹擦除是白板软件的核心功能,擦除是以固定形状对笔迹进行碰撞测试,如有相关则分割Stroke线条。 擦除区域与橡皮大小不一致 测试反馈,擦除区域与真实的橡皮大小不一致: 上图中,橡皮显示是圆形的,但擦除效果是一个“8边形”区域。 找了一台8K屏,确实是能复现的: 看到这个诡异的8边形,一开始我是以为 阅读全文
posted @ 2022-08-16 21:53 唐宋元明清2188 阅读(180) 评论(2) 推荐(1) 编辑
摘要: 获取系统已安装的.NET版本,来确定当前应用可运行的环境。 微软已经有相应的完整文档,请参考:确定已安装的 .NET Framework 版本 - .NET Framework | Microsoft Docs Release根据文档描述是版本密钥,应该是类似版本构建号,能够判断是否已安装.NET。 阅读全文
posted @ 2022-07-14 17:26 唐宋元明清2188 阅读(399) 评论(0) 推荐(0) 编辑
摘要: 关于锁,我们经常会使用lock object对象,进行资源访问的限制。 但,lock是有限制的,无法添加异步方法。编译器会报错。 下面推荐另一个类SemaphoreSlim,这是信号量的一个使用类。先看下面的使用: 1 private async void MainWindow_Loaded(obj 阅读全文
posted @ 2022-06-10 01:08 唐宋元明清2188 阅读(509) 评论(1) 推荐(1) 编辑
摘要: 当WebSocket服务端未启动时,我们在客户端申请连接,会报 System.Net.Sockets.SocketException 异常。 当然,我们调试时异常设置默认是不勾选这个的。所以不影响正常调试。 但小伙伴发现,依然会影响界面卡顿,尤其是书写性能受影响。 所以,需要确认判断服务端是否已启动 阅读全文
posted @ 2022-04-19 19:47 唐宋元明清2188 阅读(472) 评论(0) 推荐(0) 编辑
摘要: 如果界面点击时,不想让窗口激活,可以按如下操作: 1 public MainWindow() 2 { 3 InitializeComponent(); 4 SourceInitialized += OnSourceInitialized; 5 } 6 private void OnSourceIni 阅读全文
posted @ 2022-03-29 00:51 唐宋元明清2188 阅读(283) 评论(0) 推荐(0) 编辑
摘要: 如何获取当前窗口层级上方的所有窗口信息 User32有函数GetWindow function (winuser.h) - Win32 apps | Microsoft Docs,可以根据已知窗口句柄,获取指定类型的窗口。 1 [DllImport("user32.dll", SetLastErro 阅读全文
posted @ 2022-03-15 20:14 唐宋元明清2188 阅读(1110) 评论(1) 推荐(1) 编辑
摘要: 本章介绍如何通过句柄,截取指定窗口内容,以及截取失败的场景 一、根据窗口句柄获取窗口截图 先创建一个测试窗口程序A,显示如下: 同时我们把此窗口的句柄显示到一个文本输入框内。 1 TestBox.Text = new WindowInteropHelper(this).Handle.ToString 阅读全文
posted @ 2022-01-05 21:43 唐宋元明清2188 阅读(4274) 评论(0) 推荐(0) 编辑
摘要: 一、问题描述 在下面的截图中,我们发现,源码有添加一段注释。 然后通过Nuget包引用,在VS中用Reshaper反编译时,发现没有注释: 原来,DLL是默认不带注释的。即你生成一个DLL,给另一个项目引用,使用时看不到原有的注释。 二、解决方案 那如何将原有注释显示出来?可以在项目属性-生成-输出 阅读全文
posted @ 2021-12-17 16:09 唐宋元明清2188 阅读(865) 评论(2) 推荐(1) 编辑
摘要: WPF中全屏窗口,会自动隐藏任务栏。 那非全屏窗口如何隐藏任务栏?甚至有没有一种场景,隐藏任务栏后自定义一套系统任务栏来显示? 以下会分阶段讲述一些概念,任务栏、查找窗口、控制窗口显示。 1. 主屏任务栏 任务栏,其实也是一个窗口,主屏的任务栏名称是"Shell_TrayWnd"。 所以可以通过名称 阅读全文
posted @ 2021-10-01 22:26 唐宋元明清2188 阅读(1464) 评论(0) 推荐(4) 编辑
摘要: WPF窗口设置属性ResizeMode="NoResize"时,回到桌面后,点击任意应用,都会将此窗口激活。 我们来看下详细操作: 1. WPF窗口设置属性ResizeMode 2. 启动测试程序,显示窗口 3. 在任务栏的右键菜单中,点击显示桌面(也可以使用快捷键win+D,回到桌面) 4. 点击 阅读全文
posted @ 2021-09-30 09:15 唐宋元明清2188 阅读(1227) 评论(0) 推荐(3) 编辑
摘要: reshaper是个好工具,能帮助我们提升开发效率,比如本文要介绍的全局代码清理功能。 如果你的VS安装了reshaper,可以通过Ctrl+E+C快捷键打开代码清理窗口。 代码清理,可以格式化多种文件内的内容、优化using引用、优化各种冗余代码等。 如果你觉得以上功能太多,可以复制一个,然后自定 阅读全文
posted @ 2021-08-18 16:29 唐宋元明清2188 阅读(430) 评论(0) 推荐(1) 编辑
摘要: 1 /// <summary> 2 /// 判断类型是否为可操作的列表类型 3 /// </summary> 4 /// <param name="type"></param> 5 /// <returns></returns> 6 public static bool IsList(this Ty 阅读全文
posted @ 2021-08-07 15:15 唐宋元明清2188 阅读(2166) 评论(0) 推荐(0) 编辑
摘要: 本文介绍对列表进行创建及赋值的反射操作 我们现在有TestA、TestB类,TestA中有TestB类型列表的属性List,如下: 1 public class TestA 2 { 3 public List<TestB> List { get; set; } 4 } 5 public class 阅读全文
posted @ 2021-08-07 15:15 唐宋元明清2188 阅读(972) 评论(0) 推荐(1) 编辑
摘要: 在C盘创建、移动文件,如果当前不是管理员身份,是没办法直接操作。 如果当前程序有管理员权限,那可以直接操作。 但是,添加管理员权限启动,会弹出用户确认提示框。 在某些场景下,其实是不想让用户看到这样的确认框,会影响用户体验。本文来讲下如何获取权限默默的对C盘进行操作~ 对文件/文件夹添加权限控制 我 阅读全文
posted @ 2021-07-03 15:45 唐宋元明清2188 阅读(2301) 评论(0) 推荐(1) 编辑
摘要: 1、鼠标 可以通过Mouse相关的事件参数MouseButtonEventArgs中的数据,e.StylusDecice==null表示没有触摸设备,所以设备为鼠标 2、触笔 or 触摸 根据StylusDown事件参数StylusDownEventArgs, e.StylusDevice.Tabl 阅读全文
posted @ 2021-06-26 00:51 唐宋元明清2188 阅读(479) 评论(2) 推荐(1) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 19 下一页