
C#
SabreWulf2020
专注工业自动化非标自动化软件开发,使用C#,HALCON,VB6,MCGS等开发工具。
展开
-
WPF ListBox MVVM 增加列表项后,让列表自动滚动到最下面一行
WPF ListBox MVVM 增加列表项后,让列表自动滚动到最下面一行原创 2023-07-04 17:18:31 · 4155 阅读 · 1 评论 -
WPF程序只生成一个Exe文件
wpf生成独立的exe文件,隐藏引用的dll文件转载 2023-04-30 00:58:09 · 2257 阅读 · 1 评论 -
Xamarin.Forms 隐藏软键盘
1.创建 一个接口文件 IPlatformInfo.cs ,定义一个函数,比如 getRequestFocus。我在项目中,遇到 页面打开,输入框默认获取焦点,但是不需要弹出软键盘,以便用于扫描的需要,以下是代码。在 android 的 MainActivity.cs修改成。以上代码就可以实现默认隐藏软键盘了!欢迎大家提问题,请多多。转载 2022-08-22 23:15:45 · 790 阅读 · 0 评论 -
C# wpf 读写16位tif图灰度数据
一、读取16位TIFF图片的灰度值。二、根据灰度数组创建16位TIFF图。比如从相机拿到的16位灰度值数组,或者从图像中拿到的数组,需要根据这些数据创建图像。三、将图片保存成TIFF文件。原创 2022-08-19 10:48:21 · 2081 阅读 · 1 评论 -
C# 多线程CPU占用高 简单优化
C#多线程优化原创 2022-07-10 13:24:26 · 6775 阅读 · 0 评论 -
在 WPF 中使用 MessageBox 弹出但在打开后却立即自动关闭的问题
今天使用MessageBox时,发现窗口不能正常停留,显示一下就自动关闭了,查了一下发现这是由于MessageBox.Show时没有设置父窗体或设置错误的父窗体导致,例如我在右键菜单中的MenuItem调用MessageBox.Show("提示","提示",MessageBoxButton.YesNo)MessageBox就会显示一下自动关闭。如果按如下方式写,则不回自动关闭:MessageBox.Show(this,"提示","提示",MessageBoxButton.YesN原创 2022-05-01 14:10:54 · 1491 阅读 · 0 评论 -
C# 串口通讯 串口调试助手源码
工业控制类软件,Windows平台使用C#语言既方便又快捷。在工控领域,串口通讯又是极其常见的需求。于是抽时间写了一个通用的串口调试助手工具,并将工控调试中常用的功能集成在上面,方便调试。源码已在gitee上开源,界面使用wpf实现,源码地址:BYSerial: Microsoft Windows 串口调试助手 (gitee.com)https://gitee.com/LvYiWuHen/byserial简单介绍一下已实现的功能。程序功能主要分为四大块:1.串口通讯2.TCP通讯......原创 2022-04-25 22:04:56 · 10802 阅读 · 3 评论 -
WPF XAML在字符串内容中使用特殊字符
在XAML中设置控件的字符串内容时,某些特殊字符不可以直接使用,需要使用字符实体替换,以下为常用字符和字符实体对应关系常规字符 字符实体 & & > > < < " " ' ' { {}{ ({用在字符串头部时使用) 回车 
或者 换行 �...原创 2022-04-13 15:47:53 · 1047 阅读 · 0 评论 -
C# 移动无标题栏无边框窗体的3种方法
目录第一种:手工移动第二种:调用系统API1.引入下面代码 前提需要引入命名空间using System.Runtime.InteropServices2.增加鼠标按下事件发送消息,让系统误以为按下是标题栏第三种,重写 WndProc第一种:手工移动直接通过修改窗体位置从而达到移动窗体的效果 //定义一个位置信息Point用于存储鼠标位置 private Point mPoint; /// <summary>原创 2022-03-13 15:34:16 · 2375 阅读 · 0 评论 -
C# Linq获取List列表中某个字段最大值对应的记录
就以下面的列表举个小例子吧:List<T> epList = new List<T>();方法1:试了Max()取最大值的方法,但是方法返回的是一个特定的值,而不是对应的一条记录;有些不方便,当然也是可以如下方法实现://取出最大值var maxValue = epList.Max(x => x.value);//从列表中匹配值等于最大值的第一项T item = epList.Where(x=>x.value == maxValue)...转载 2022-01-17 13:24:19 · 4399 阅读 · 0 评论 -
开源 串口调试助手 BaoYuanSerial 使用教程
简介:软件使用.Net5+Avalonia实现跨平台方案。支持Linux Ubuntu,Windows,已在Ubuntu20.04,Win10 Professional 20H2测试通过。官方下载地址:项目地址:xuyuanbao/BaoYuanSerial: A GUI Serial Debug Tool for Linux/Microsfot Window (github.com)下载地址:Release BaoYuanSerila-V1.1 · xuyuanbao/BaoYuanSer原创 2021-08-22 10:25:34 · 1286 阅读 · 2 评论 -
ubuntu 手动创建快捷图标 并赋予root权限免密
一、将当前账户赋予root权限,并sudo免密1.赋予root权限修改 /etc/sudoers 文件sudo gedit /etc/sudoers原创 2021-06-05 03:42:25 · 3037 阅读 · 2 评论 -
解决VS2013 NuGet程序包 一直显示加载中,无法显示问题
解决VS2013 NuGet程序包 一直显示加载中,无法显示问题最近用vs2013安装程序包,忽然发现用不了,显示一直是加载中,但是vs2017可以。同样的源。尝试更改程序包源,还是不行。后来发现问题nuget官方网站已经不支持http访问, 只支持https,但是vs2013访问https默认使用的协议为Tls1.1,但是nuget官方网站只支持Tls1.2。要解决这个问题,那就需要让vs2013以Tls1.3访问Nuget的官网,具体解决办法为在程序包管理控制台运行如下命令[Net.Ser.转载 2021-04-17 23:51:55 · 3932 阅读 · 5 评论 -
C# WINFORM 修改datagridview列标题的背景颜色和字体颜色
有时我们设置的了datagridview的ColumnHeadersDefaultCellStyle属性中的外观颜色后,运行没有效果。如下图:只需要再设置一下dataGridView的EnableHeadersVisualStyles的属性为false即可。如下图橘黄色箭头所示位置。...原创 2020-12-16 10:41:17 · 7774 阅读 · 0 评论 -
Visual Studio 2019 Community 版离线注册
本文主要参考 https://blog.youkuaiyun.com/songfuliang2011/article/details/102486451Visual Studio 2019 Community 虽然是免费使用, 但必须在线注册一个账号, 否则30天后就不能使用.对于不能连外网的机器, 可以使用离线注册的方式, 步骤:1. 找一台能连外网的机器, 完成注册.2. 在注册好的机器上, 打开 C:\Users\Administrator\AppData\Local\Microsoft...转载 2020-11-12 20:11:21 · 5289 阅读 · 1 评论 -
[C#]根据labelme产生的json文件,批量生成8位黑白png图
目录背景黑白图像素填充原理源码附录:1.调试带参数的控制台应用程序方法2. 使用pyinstaller将labelme打包为exe文件3. 数据标注软件labelme详解背景由于工作原因,需要对图像进行分类,建模,作为深度学习的材料。自己造轮子造了半天,结果发现labelme这块做的很好,于是放弃造轮子,借用labelme产生的json文件,生成需要的8位黑白png图(labelme自带的生成8位png图是彩色的,不满足需求)。黑白图像素填充原理根据json...原创 2020-05-14 22:36:13 · 2784 阅读 · 4 评论 -
C# 图像处理:将图像(24位真彩)转为 8位图像,供深度学习
将RGB24位图转为只读取R通道的8位图,供深度学习训练模型使用 /// <summary> /// 取源图像R通道数据,并转化为8位灰度图像。 /// </summary> /// <param name="original"> 源图像。 </param> /// <returns> 8位灰度图像。 </returns> public static.原创 2020-05-14 13:09:31 · 3060 阅读 · 1 评论 -
C# 资源文件格式转换-资源文件生成器 (Resgen.exe)
资源文件生成器将 .txt 文件和 .resx(基于 XML 的资源格式)文件转换为公共语言运行库二进制 .resources 文件,该文件可嵌入运行库二进制可执行文件或编译成附属程序集。有关部署和检索 .resources 文件的信息,请参见应用程序中的资源。Resgen.exe 执行下列转换:将 .txt 文件转换为 .resources 文件或 .resx 文件。 将 .resou...翻译 2020-04-03 13:28:19 · 1221 阅读 · 0 评论 -
C#完美任意设置webBrowser框架默认的IE内核版本
通常情况下,我们直接调用C#控件webBrowser1控件的时候 默认是IE7 用webBrowser1控件打开IE内核检测网站内容是这样滴我们在程序里面写入以下代码 /// <summary> /// 修改注册表信息来兼容当前程序 /// /// </summary> ...转载 2020-03-31 14:26:11 · 1966 阅读 · 0 评论 -
C#使用CefSharp访问本地html页面显示空白,Chrome等其他浏览器显示正常
调试CefSharp时遇到的问题:CefSharp访问在线的网站,均可正常显示。而当Url切换为本地html文件时,窗口变空白,另外将本地html文件的完整路径粘贴到Chrome,Edge,IE中均可正常显示。说明html代码没问题。以下最上面为Chrome,中间为Edge,下面为IE。仔细观察各自地址栏显示内容可以发现,前两款浏览器都对路径进行了加工处理,IE则是原封未动;比...原创 2020-03-09 14:02:47 · 6197 阅读 · 1 评论 -
C#正则表达式匹配连续相同字符,如...aaa..bbb...11111...2222...
参考:https://blog.youkuaiyun.com/tao_sheng_yi_jiu/article/details/80366004目的:匹配连续相同的3个数字或字母string regExp = "(\\w)\1{2}";//注意此处不要添加边界符号(^和$)string str = "!@$#12aaa3444da33dddd@#$%%$#";MatchCollection m...原创 2020-01-16 18:02:49 · 2527 阅读 · 0 评论 -
Halcon HObject和C# Bitmap图像互转的几种方式及转换时间测试
分别使用了HOperatorSet.GenImageInterleaved直接转换、C#获取图像各个通道内存首地址和HOperatorSet.GenImage3合成、OpenCV获取图像各通道内存首地址和HOperatorSet.GenImage3合成的三种方式。经测试发现还是使用HOperatorSet.GenImageInterleaved方法转换速度最快。详细测试代码如下:usin...原创 2019-08-17 10:01:57 · 15625 阅读 · 40 评论 -
Win10(64位)未在本地计算机上注册"Microsoft.Jet.OLEDB.4.0"提供程序
C#使用OLEDB方式连接ACCESS时提示标题中的错误,这是因为没有安装64位的Jet40驱动,只需将项目平台改为X86即可。例如:生成->配置管理器->平台->点击Any Cpu选项卡->新建->新建平台->X86。如果原来的项目必须为X64,可将这部分功能新建一个X86项目,然后在原项目中调用X86项目的exe。...原创 2019-12-08 15:29:19 · 9497 阅读 · 0 评论 -
C#获取当前应用程序所在路径及环境变量
一、获取当前文件的路径string str1=Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。 string str2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。(备注:按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值...转载 2018-05-17 11:43:55 · 168 阅读 · 0 评论 -
C#生成配置选择release编译后仍然是debug(或者配置debug编译后仍是release)的问题解决--日志记录
一、Release改debugC#项目属性--生成--配置 已经选择Release,重新编译后仍然是Debug的问题:改解决方案 配置属性--属性 中的的 “配置”为Realease,重新编译即可------------------------------------------------------------------------------------二、Debug改Relase(20...原创 2018-02-08 08:59:52 · 2308 阅读 · 0 评论 -
C#中DateTime日期类型格式化显示方法汇总及字符串转DateTime
0.“Dec 17 19:24”字符串转为DateTime格式DateTime dt = DateTime.ParseExact("MMM dd HH:mm","yyyyMMddHHmmss", System.Globalization.CultureInfo.InvariantCulture);DateTime.ParseExact MSDN连接https://docs....原创 2017-12-02 15:47:31 · 3849 阅读 · 1 评论 -
"在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配" 问题总结
最近C#连接ODBC数据源时,总是提示“[Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配“,百度查询之后才知道原来是系统是64位的原因。64位电脑系统中,在程序连接ODBC数据源出现此错误提示时,请检查配置ODBC数据源时是用的“C:\Windows\SysWOW64\odbcad32.exe“还是用的“C:\Windows\Sy原创 2016-11-18 12:30:28 · 8688 阅读 · 0 评论 -
C# WPF Border控件总结
Border控件不是一个布局面板,而是一个非常便于使用的元素,经常与布局面板一起使用。所以,在继续介绍其他布局面板之前,现在先介绍一下Border控件是有意义的。Border类非常简单。它只能包含一段嵌套内容(通常是布局面板),并为其添加背景或在其周围添加边框。为了深入地理解Border控件,只需要掌握表中列出的属性就可以了。表 Border类的属性 Background ...原创 2016-11-18 09:12:52 · 31192 阅读 · 0 评论 -
C#中StringBuilder类的使用总结
String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类。例如,当在一个循环中将许多字符串连接在一起时,转载 2016-11-07 14:24:03 · 12332 阅读 · 1 评论 -
c#多线程 Invoke方法的使用
在多线程编程中,我们经常要在工作线程中去更新界面显示,而在多线程中直接调用界面控件的方法是错误的做法,Invoke 和 BeginInvoke 就是为了解决这个问题而出现的,使你在多线程中安全的更新界面显示。正确的做法是将工作线程中涉及更新界面的代码封装为一个方法,通过 Invoke 或者 BeginInvoke 去调用,两者的区别就是一个导致工作线程等待,而另外一个则不会。而所谓转载 2016-09-25 18:45:52 · 1782 阅读 · 0 评论 -
C# Tcp协议收发数据(TCPClient发,Socket收)
转载自:http://www.cnblogs.com/WTFly/p/5340617.html运行这个程序前需要先关闭Windows防火墙,Win7系统关闭防火墙的方法是在控制面板的“控制面板\系统和安全\Windows 防火墙\自定义设置”路径中,将“家庭或工作(专用)网络位置设置”和“公用网络位置设置”下面的选项都选到“关闭Windows防火墙(不推荐)”。1.界面设计最下方为发送转载 2016-09-25 16:25:01 · 4620 阅读 · 0 评论 -
C#项目中没有App.config文件,手动添加方法
在解决方案资源管理器中,右键项目名称,在右键菜单中选择“添加”-“新建项”,在弹出的新建项窗口列表中,选择“添加应用程序配置文件”选项,即可在项目文件中添加App.config文件。...原创 2018-08-01 10:24:05 · 16896 阅读 · 0 评论 -
C# IDE中函数上面的"引用"不显示可能的原因
如上方图片中,引用位置没有显示有几个引用.此有可能和防火墙有关,关闭防火墙后,重新打开源码后,显示正常原创 2018-08-27 17:17:52 · 2705 阅读 · 0 评论 -
用C#生成.dll 供VB6的开发人员调用
目录用C#生成.dll 供VB6的开发人员调用C#生成基于COM的DLL供VB调用用C#生成.dll 供VB6的开发人员调用里面有两个方法 Encrypt(string pToEncrypt,string sKey) //加密 Decrypt(string pToDecrypt,string sKey) //解密 然后你这样写代码: using Sy...转载 2018-11-05 11:33:46 · 2128 阅读 · 0 评论 -
C#-Bitmap-Image图片翻转和旋转
测试环境:WIN10 VS2013在项目中用到了图片的翻转,使用了Image类的RotateFlip方法,特将相关资料整理记录。Image.RotateFlip方法参考官方https://docs.microsoft.com/zh-cn/dotnet/api/system.drawing.image.rotateflip?view=netframework-4.8#System_Drawi...原创 2019-09-02 22:49:01 · 8932 阅读 · 0 评论 -
C# WebBrowser简易浏览器Demo
同事项目想要使用html文件作为帮助文档,随推荐他用webbrowser,为了给他介绍该控件的简易用法,网上搜集整理一下,写了一个简单的Demo。开发环境:WIN10+VS2013。Demo主界面菜单界面源码Demo下载地址:链接:https://pan.baidu.com/s/1YozhVnk7pvMFPeIh4njHRQ提取码:8vyc参考:https:/...原创 2019-06-17 17:39:58 · 4608 阅读 · 3 评论 -
CoreAudioApi-音频端点设备-检测耳机插拔
术语“端点设备”是指位于数据路径一端的硬件设备,该数据路径源自或终止于应用程序。音频终端设备的例子有扬声器、耳机、麦克风和CD播放器。沿着数据路径移动的音频数据可能在应用程序和端点设备之间的行程中穿过许多软件和硬件组件。尽管这些组件对于端点设备的操作是必不可少的,但用户往往看不到它们。用户更可能考虑他们直接操作的端点设备,而不是端点设备插入的音频适配器上的设备,或处理流入和流出这些适配器的音频流的...翻译 2019-03-08 11:15:02 · 1779 阅读 · 0 评论 -
无法加载与 8080 版本的 ADO.NET 提供程序相对应的 SQL Server Compact 的本机组件。请安装 SQL Server Compact 的正确版本。有关详细信息,请参阅知识库文
C# 调试之前写的调用SQL Server Compact程序时,弹出提示框提示如标题中的问题:无法加载与 8080 版本的 ADO.NET 提供程序相对应的 SQL Server Compact 的本机组件。请安装 SQL Server Compact 的正确版本。有关详细信息,请参阅知识库文章 974247。后经过一番查找,找到了https://blog.youkuaiyun.com/zyzl...原创 2019-02-23 14:05:46 · 2696 阅读 · 0 评论 -
C# WebService无法加载协定为“ServiceReference1.xxxxxx”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分
winform中添加了服务引用webservice后,在代码中调用创建服务引用提供的类时,提示:无法加载协定为“ServiceReference1.xxxxxx”的终结点配置部分,因为找到了该协定的多个终结点配置。请按名称指示首选的终结点配置部分。原因请在解决方案资源管理器界面找到App.config文件打开。查看是否bindings项有多个,确实有多个话,删掉没有使用的binding相关的信息,...原创 2019-01-22 13:20:46 · 2536 阅读 · 0 评论 -
C# TCP/IP程序C/S方式无法连接服务器的问题解决方法之一
昨天下午工厂测试产线上线了新的笔记本整机(WIN10 177663),测试笔记本时,发现笔记本中的TCP/IP客户端无法连接测试主机的服务端程序(TCPListener/TCPClinet)。但是在安装有WIN10 17134的笔记本中,程序一切正常。以下为我排查思路:1.检查新笔记本防火墙是否已经关闭。——已经关闭2.检查到网络连接模式为公共网络。——改为专用网络在新笔记本中先用...原创 2019-01-14 09:46:55 · 2093 阅读 · 0 评论