C#
文章平均质量分 52
迷惘小书童
努力,奋斗
展开
-
WPF中TreeView的拖拽实现
在Treeview中实现Drag和Drop拖拽功能原创 2023-08-23 14:20:44 · 1003 阅读 · 0 评论 -
WPF中手写地图控件(4)——离线地图
通过内存缓存和本地文件缓存技术加载地图原创 2023-08-23 13:27:07 · 469 阅读 · 1 评论 -
WPF中手写地图控件(3)——动态加载地图图片
图片动态加载原创 2023-08-23 13:26:20 · 1266 阅读 · 0 评论 -
WPF中手写地图控件(2)——区域显示
地图控件上显示区域原创 2023-08-23 13:24:18 · 355 阅读 · 0 评论 -
WPF中手写地图控件(1)——基于瓦片地图的控件
瓦片地图组成地图控件原创 2023-08-23 13:23:15 · 696 阅读 · 2 评论 -
WPF中自定义Loading图
纯前端方式,通过动画实现Loading样式原创 2023-08-03 17:53:33 · 2361 阅读 · 0 评论 -
WPF自定义Command
WPF 中的命令是通过实现 ICommand 接口创建的。ICommand 公开了两种方法 Execute 和 CanExecute,以及一个事件 CanExecuteChanged。Execute 执行与该命令关联的操作。CanExecute 确定是否可以在当前命令目标上执行该命令。如果集中管理命令操作的命令管理器检测到命令源中存在一个可能使已引发命令无效但尚未由命令绑定执行的更改,则会引发 CanExecuteChanged。set;set;原创 2023-06-25 17:59:51 · 751 阅读 · 0 评论 -
海康相机丢包问题
如果是网口相机,发现丢包问题肯定要先看防火墙是不是关了,以及网络设置是否设置正确,这两个解决方法可以通过查看相机厂商提供的网络问题排查手册解决,如果海康相机在上面的排查手段都做了之后还存在丢包现象,提供一个我个人的解决方法,仅供参考。然后这个解决方法是c#语言的,当然了,对于其他语言也是存在一定意义的。原创 2022-03-30 19:49:18 · 6428 阅读 · 0 评论 -
c#调用C++的dll报错“外部组件发生异常”
发生原因C++那里void setfile(char** filename)dll函数中有个参数接收char**,内容是文件名的集合,于是我就用了string[]然而传的路径是中文时就会报“外部组件发生异常”错误解决方法原先[DllImport(@"DripDetection", CallingConvention = CallingConvention.Cdecl)]public unsafe static extern void setfile(string[] filepath);原创 2022-03-07 17:57:00 · 5251 阅读 · 0 评论 -
自定义dictionary类的序列化
今天遇到一个问题“could not conver string to dictionary key”的错误首先我重写了一个Dictionary,让他继承IDictionary在这里插入代码片然后我发现我的Json文件是“”...原创 2019-09-10 11:08:00 · 551 阅读 · 0 评论 -
Your project is not referencing the ".NETFramework,Version=4.5" framework.
我遇到了Your project is not referencing the “.NETFramework,Version=4.5” framework. Add a reference to “.NETFramework,Version=4.5” in the “frameworks” section of your project.json, and then re-run NuGet r...原创 2019-05-14 15:01:09 · 3838 阅读 · 3 评论 -
迭代器的实现
迭代器的实现迭代器模式是行为模式的一种范例,行为模式是一种简化对象之间通信的一种设计模式。在.NET中,迭代器模式是通过IEnumerator和IEnumerable接口以及它们的泛型版本来实现的。如果某个类实现了IEnumerable接口,就说明它可以被迭代访问,调用GetEnumerator()方法将返回IEnumerator的实现,这个就是迭代器本身。在C# 1.0中,利用forea...原创 2018-05-08 23:17:30 · 492 阅读 · 0 评论 -
实时显示当前正在解压缩的文件名
最近需要一个解压缩的需求,因为文件较多,所以希望能看到正在解压的文件名,于是需要个委托来返回文件名。首先我们先定义一个解压缩的帮助类,这里我用了DotNetZip.dll。using Ionic.Zlib;using System;using System.Collections.Generic;using System.IO;using System.Linq;using Syst...原创 2019-01-02 17:06:15 · 366 阅读 · 0 评论 -
在InstallShield中写SuperDog加密狗程序
因为公司有个需求,需要一个安装包,只允许在一台电脑上安装,安装了之后,就无法在其他电脑安装了,我就想到了加密狗,于是就淘宝了一个safenet的超级狗superdog。通过c#编写一个dllnamespace XXXXXXX{ public class XXXXXXX { public bool GetSuperDog() { ...原创 2018-12-21 17:35:16 · 2068 阅读 · 0 评论 -
单元测试
MSTest单元测试这是MSTest的微软官方的教程:使用 MSTest 进行 C# 单元测试这是MSTest的Mock的教程:用 Microsoft Fakes 隔离测试代码原创 2018-11-28 18:23:26 · 179 阅读 · 0 评论 -
反射
1、假设你要反射一个 DLL 中的类,并且没有引用它(即未知的类型):Assembly assembly = Assembly.LoadFile(“程序集路径,不能是相对路径”); // 加载程序集(EXE 或 DLL)dynamic obj = assembly.CreateInstance(“类的完全限定名(即包括命名空间)”); // 创建类的实例2、若要反射当前项目中的类(即当前项目...原创 2018-11-27 18:30:20 · 107 阅读 · 0 评论 -
后台代码的SQL语句根据不同数据库转换
一般情况下,我们的SQL语句都写在代码里,虽然耦合度高了,但是方便。然而,如果突然有一天,需求变了,换数据库,然后我们用新的数据库,一调试,发现有些SQL语句不执行,傻眼了,只能一条一条的改,而且,如果有一天数据库又要换回来,又要改回去,非常不方便。这里我提供一个方法。根据配置更换数据库-<connectionStrings> <!--<add nam原创 2018-11-30 11:32:36 · 1893 阅读 · 0 评论 -
WPF的打印预览
WPF的文档使用基本使用文档模版Flow Document,但是单独的Flow Document(流文档)是没法预览的,你必须把它放在一个容器中才可以,流文档的容器有FlowDocumentScrollViewer,FlowDocumentPageViewer,FlowDocumentReader,另外还有DocumentViewer,这个只支持固定流文档(只读)。本次博客就决定界面使用Docu...原创 2018-11-02 17:47:04 · 1871 阅读 · 0 评论 -
C#委托、同步调用、异步调用
C#委托、同步调用、异步调用本文主要记录我对c#的委托、同步调用、异步调用的初步理解,我工作的时候看公司代码看到的对于异步调用的使用方法,我觉得不明而厉,于是试着自己做了个例子,发现并不是很难理解。如果有什么理解错误的地方,请不吝指出,谢谢!委托的使用与理解 概念:委托类似于 C++ 中的函数指针;但是,委托是类型安全和可靠的。委托用于将方法作为参数传递给其他方法。 事件处理程...原创 2017-11-16 11:24:13 · 973 阅读 · 0 评论 -
c#事件
C#事件看到事件先不用怕,其实你肯定用过,随便一个winform程序基本都有按钮button,点击按钮会进入一个button_Click的方法,这个就是事件。这个方法平常是不调用的,只有在点击按钮的时候才会调用这个方法。于是我们可以把事件看成两个部分事件发生器(Publisher)与事件接收器(Receiver)。事件发生器即是button按钮注册了点击事件,当按钮被点击时通知事件接收器:我被...原创 2017-11-16 23:35:14 · 233 阅读 · 0 评论 -
枚举
枚举最近项目需要我的枚举以中文名显示,不知道该怎么实现,百度了之后发现还是有方法的,于是在这里将它记录下来。 首先先定义一个枚举enum TypeEnum{ Length=0, Width, Height}枚举是值类型的,每个枚举成员均具有相关联的常数值,所以实际上TypeEnum.Length是等于0的,对它进行tostring操作才等于”Length”...原创 2017-11-16 17:34:56 · 249 阅读 · 0 评论 -
LINQ
LINQLINQ是c#3.0的核心,平常工作中经常使用到,但不明白其中的原理,那现在就来讲讲LINQ:LINQ的简介查询和查询表达式LinqToSQLLINQ的简介 LINQ(Language Integrated Query)语言集成查询是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作...原创 2018-03-30 18:51:46 · 243 阅读 · 0 评论 -
数组
数组数组的定义Array、ArrayList、List的区别数组的方法数组的定义数组是允许将多个数据项作为集合来处理的机制。CLR支持一维、多维和交错数组(即数组构成的数组)。所有数组类型都隐式地从System.Array抽象类派生,后者又派生自System.Object。这意味着数组始终是引用类型。Array、ArrayList、List的区别所有数组都隐...原创 2018-04-17 18:52:50 · 210 阅读 · 0 评论 -
byte[]、string、char[]互相转换
string转byte[]:byte[] byteArray = System.Text.Encoding.Default.GetBytes ( str );byte[]转string:string str = System.Text.Encoding.Default.GetString ( byteArray );string转char[]:char[] ch= str....原创 2018-04-20 17:37:48 · 3116 阅读 · 0 评论 -
Stream
Stream流用于对IO处理。在System.IO名称空间中有以下类 :BinaryReader/WriterTextReader/Writer Stream StreamStream是抽象类。由此有三个派生类: FileStream:对文件执行读取与写入 BufferedStream:对缓冲器进行读取/写入 MemoryStream:对内存进行读取与写入 ...原创 2018-04-20 19:39:07 · 338 阅读 · 0 评论 -
WPF多个按钮点击切换样式
WPF多个按钮点击切换样式本文主要讲述WPF中多个按钮,点击状态为一个样式,未点击状态为一个样式,两种样式通过点击这个动作会发生改变,点击另一个按钮,当前已点击的按钮样式也改变的情况。不复杂样式的多个按钮主要做法就是将按钮使用radiobutton来代替,然后各个radiobutton的GroupName取名为同一个,如本例中就是取名为“button1”。<RadioButton ...原创 2018-10-25 18:04:36 · 7709 阅读 · 0 评论 -
WPF自定义最大化最小化关闭按钮
WPF自定义最大化最小化关闭按钮当觉得界面自带的最大化最小化关闭按钮不好看,或者想换个位置的时候,你需要自定义最大化最小化关闭按钮最大化按钮最大化按钮有两种状态:最大化,跟还原状态两种显示方式。做法:定义command为SystemCommands.XXXCommand。本次使用了DataTemplateSelector,根据当前window的WindowState状态来判断当前窗体状态(如...原创 2018-10-26 10:10:24 · 12596 阅读 · 2 评论 -
WPF的Treeview子节点绑定
WPF的Treeview子节点绑定做法使用HierarchicalDataTemplate 更改DataType。当前ViewModel下有个ObservableCollection类型的EcgProjectList,于是一级节点都是EcgProject类型,EcgProject下有个ObservableCollection类型的Sheets,于是二级节点是EcgSheet类型。如果还想要三级节...原创 2018-10-26 13:50:18 · 1505 阅读 · 0 评论 -
WPF一组拥有多种不同样式的容器
WPF一组拥有多种不同样式的容器这种情况可以使用ListView或者ListBox,我用的ListView,具体ControlTemplate我本来准备用Grid的,因为我当时的需求是固定个数的数组,但是用了Grid,就全部在0行0列处叠起来,怎么改都没用,而且怎么查Stack Overflow也没找到具体方法,于是就放弃了,用的WrapPanel。<ListView ItemTempl...原创 2018-10-26 15:19:02 · 513 阅读 · 0 评论 -
GDI+一般错误
GDI+一般错误一般都是Bitmap.Save()错了。(1)可能是文件路径不对,确保一下是否存在或者格式问题。(2)可能是保存的文件位置被上次打开的Bitmap锁定住了(MSDN上说:当从文件构造Bitmap对象或Image对象时,该文件在对象的生命周期内保持锁定状态。因此,您无法更改图像并将其保存回原始位置的同一文件中),因此要么文件位置就是当前Bitmap的文件位置,要么就是上次Bit...原创 2018-10-26 15:24:52 · 905 阅读 · 0 评论 -
WPF的TreeView的节点选中但失去焦点样式
点击效果失去焦点后怎么做到可以让失去焦点的时候颜色也不变呢你让他在活动和非活动TreeView中,所选项目的前景色和背景色是相同的就行了&lt;TreeView.ItemContainerStyle&gt; &lt;Style TargetType="{x:Type TreeViewItem}"&gt; &lt;Style.Resources&gt;原创 2018-11-01 14:38:04 · 2690 阅读 · 2 评论 -
WPF同时拥有点击事件与Command
StackPanel同时有点击事件与Command:MouseBinding用了LeftClick之后只能用PreviewMouseLeftButtonDown,不加preview都会有一个不运行<StackPanel Orientation="Horizontal" PreviewMouseLeftButtonDown="Button_Click" Cursor="Hand"> ...原创 2018-11-06 17:04:00 · 3004 阅读 · 0 评论 -
string与StringBuilder
string与StringBuilder今天无意间看到C#6.0的新特性$”“的用法发现很神奇,就查看了很多资料,正好就对string型做一个整理string是什么说string之前,首先先介绍下Char。Char在.Net中表示字符,即一个16位的Unicode代码值,它是一个值类型并且长度固定。而string被称为字符串,可以理解成多个字符的集合,它是特殊的引用类型。它继承自Sys...原创 2017-11-30 15:47:31 · 304 阅读 · 0 评论