会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
唐宋元明清的博客
WPF
博客园
首页
新随笔
联系
管理
上一页
1
2
3
4
5
6
7
8
9
10
···
20
下一页
2022年9月27日
C# implicit隐式转换
摘要: 今天看书,上面介绍implicit和explicit相对冷门,用的较少。 这个implicit类型虽然冷门,但真的很有用。我在自己的项目里就用了这个 上Demo, 1 public partial class MainWindow : Window 2 { 3 public MainWindow()
阅读全文
posted @ 2022-09-27 23:30 唐宋元明清2188
阅读(271)
评论(0)
推荐(0)
2022年8月28日
Nuget 多项目复合打包
摘要: 问题描述 我这里有个进程间通信组件,用于提供多应用间通信的解决方案。 进程间通信,分为客户端和服务端,俩端肯定会有些共性代码,所以加了个H3C.Channel.Core项目 因为之前还不太了解nuget这块,然后我就踩到了坑: 引用H3C.Channel.Client包后,H3C.Channel.C
阅读全文
posted @ 2022-08-28 17:56 唐宋元明清2188
阅读(370)
评论(3)
推荐(0)
2022年8月16日
.NET 笔迹擦除8边形
摘要: 笔迹擦除是白板软件的核心功能,擦除是以固定形状对笔迹进行碰撞测试,如有相关则分割Stroke线条。 擦除区域与橡皮大小不一致 测试反馈,擦除区域与真实的橡皮大小不一致: 上图中,橡皮显示是圆形的,但擦除效果是一个“8边形”区域。 找了一台8K屏,确实是能复现的: 看到这个诡异的8边形,一开始我是以为
阅读全文
posted @ 2022-08-16 21:53 唐宋元明清2188
阅读(232)
评论(2)
推荐(1)
2022年7月14日
C# 获取系统已安装的.NET版本
摘要: 获取系统已安装的.NET版本,来确定当前应用可运行的环境。 微软已经有相应的完整文档,请参考:确定已安装的 .NET Framework 版本 - .NET Framework | Microsoft Docs Release根据文档描述是版本密钥,应该是类似版本构建号,能够判断是否已安装.NET。
阅读全文
posted @ 2022-07-14 17:26 唐宋元明清2188
阅读(451)
评论(0)
推荐(0)
2022年6月10日
C# 信号锁SemaphoreSlim
摘要: 关于锁,我们经常会使用lock object对象,进行资源访问的限制。 但,lock是有限制的,无法添加异步方法。编译器会报错。 下面推荐另一个类SemaphoreSlim,这是信号量的一个使用类。先看下面的使用: 1 private async void MainWindow_Loaded(obj
阅读全文
posted @ 2022-06-10 01:08 唐宋元明清2188
阅读(556)
评论(1)
推荐(1)
2022年4月19日
进程间通信WebSocket 服务端未启动时,客户端重连报错
摘要: 当WebSocket服务端未启动时,我们在客户端申请连接,会报 System.Net.Sockets.SocketException 异常。 当然,我们调试时异常设置默认是不勾选这个的。所以不影响正常调试。 但小伙伴发现,依然会影响界面卡顿,尤其是书写性能受影响。 所以,需要确认判断服务端是否已启动
阅读全文
posted @ 2022-04-19 19:47 唐宋元明清2188
阅读(582)
评论(0)
推荐(0)
2022年3月29日
C# 禁用窗口激活
摘要: 如果界面点击时,不想让窗口激活,可以按如下操作: 1 public MainWindow() 2 { 3 InitializeComponent(); 4 SourceInitialized += OnSourceInitialized; 5 } 6 private void OnSourceIni
阅读全文
posted @ 2022-03-29 00:51 唐宋元明清2188
阅读(334)
评论(0)
推荐(0)
2022年3月15日
C# 获取指定窗口的上层窗口
摘要: 如何获取当前窗口层级上方的所有窗口信息 User32有函数GetWindow function (winuser.h) - Win32 apps | Microsoft Docs,可以根据已知窗口句柄,获取指定类型的窗口。 1 [DllImport("user32.dll", SetLastErro
阅读全文
posted @ 2022-03-15 20:14 唐宋元明清2188
阅读(1208)
评论(1)
推荐(1)
2022年1月5日
C# 根据窗口句柄获取窗口截图
摘要: 本章介绍如何通过句柄,截取指定窗口内容,以及截取失败的场景 一、根据窗口句柄获取窗口截图 先创建一个测试窗口程序A,显示如下: 同时我们把此窗口的句柄显示到一个文本输入框内。 1 TestBox.Text = new WindowInteropHelper(this).Handle.ToString
阅读全文
posted @ 2022-01-05 21:43 唐宋元明清2188
阅读(4789)
评论(0)
推荐(0)
2021年12月17日
VS 查看引用的DLL/Nuget包源码时,无法看到注释
摘要: 一、问题描述 在下面的截图中,我们发现,源码有添加一段注释。 然后通过Nuget包引用,在VS中用Reshaper反编译时,发现没有注释: 原来,DLL是默认不带注释的。即你生成一个DLL,给另一个项目引用,使用时看不到原有的注释。 二、解决方案 那如何将原有注释显示出来?可以在项目属性-生成-输出
阅读全文
posted @ 2021-12-17 16:09 唐宋元明清2188
阅读(980)
评论(2)
推荐(1)
2021年10月1日
C# 显示、隐藏窗口对应的任务栏
摘要: WPF中全屏窗口,会自动隐藏任务栏。 那非全屏窗口如何隐藏任务栏?甚至有没有一种场景,隐藏任务栏后自定义一套系统任务栏来显示? 以下会分阶段讲述一些概念,任务栏、查找窗口、控制窗口显示。 1. 主屏任务栏 任务栏,其实也是一个窗口,主屏的任务栏名称是"Shell_TrayWnd"。 所以可以通过名称
阅读全文
posted @ 2021-10-01 22:26 唐宋元明清2188
阅读(1613)
评论(0)
推荐(4)
2021年9月30日
WPF Window设置ResizeMode="NoResize"
摘要: WPF窗口设置属性ResizeMode="NoResize"时,回到桌面后,点击任意应用,都会将此窗口激活。 我们来看下详细操作: 1. WPF窗口设置属性ResizeMode 2. 启动测试程序,显示窗口 3. 在任务栏的右键菜单中,点击显示桌面(也可以使用快捷键win+D,回到桌面) 4. 点击
阅读全文
posted @ 2021-09-30 09:15 唐宋元明清2188
阅读(1320)
评论(0)
推荐(3)
2021年8月18日
Reshaper 代码清理工具
摘要: reshaper是个好工具,能帮助我们提升开发效率,比如本文要介绍的全局代码清理功能。 如果你的VS安装了reshaper,可以通过Ctrl+E+C快捷键打开代码清理窗口。 代码清理,可以格式化多种文件内的内容、优化using引用、优化各种冗余代码等。 如果你觉得以上功能太多,可以复制一个,然后自定
阅读全文
posted @ 2021-08-18 16:29 唐宋元明清2188
阅读(521)
评论(0)
推荐(1)
2021年8月7日
C# 反射 判断类型是否是列表
摘要: 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
阅读(2497)
评论(0)
推荐(0)
C# 反射 操作列表类型属性
摘要: 本文介绍对列表进行创建及赋值的反射操作 我们现在有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
阅读(1052)
评论(0)
推荐(1)
上一页
1
2
3
4
5
6
7
8
9
10
···
20
下一页
公告