C#
shaynerain
欢迎交流shaynerain@163邮箱
展开
-
C#重写ToString()
C#中所有的类均继承Object,同样继承了Object中的ToString(),直接调用将会返回类名,往往使用中我们希望它按照我们的想法转换成字符串,这就需要重写ToString()Object中定义如下: // // 摘要: // Returns a string that represents the current object. // // 返回结果: // A string t原创 2021-08-19 21:58:24 · 1920 阅读 · 0 评论 -
System.Text.Json和Newtonsoft.Json区别
System.Text.Json;.NET在.NETCore3.1中支持了对json的序列化和反序列化,如果对代码安全性十分严格,可以使用微软的这个库,相关文档如下https://docs.microsoft.com/zh-cn/dotnet/standard/serialization/system-text-json-converters-how-to?pivots=dotnet-5-0#deserialize-inferred-types-to-object-propertiesNewto原创 2021-08-19 21:57:29 · 2320 阅读 · 0 评论 -
C#快速重写Equals和GetHashCode
VS可以帮助程序员快速重写Equals和GetHashCode,并且支持生成运算符。至于为什么生成Equals时需要生成GetHashCode,简单来说,真正的对比会对比hash,而重写的对比如果调用默认的hash则即使相等也会不等在类名称点击右键,选择快速操作和重构在菜单中选择生成Equals和GetHashCode..选择所需要的的属性,选择是否生成运算符生成后的...原创 2021-08-06 11:05:03 · 851 阅读 · 0 评论 -
C# 提交POST请求 提交json
php端 可参考该文章https://blog.csdn.net/shaynerain/article/details/119445969Text.Json目前.NET Core3.1及以上支持using System;using System.IO;using System.Net;using System.Text;using System.Text.Json;namespace Info{ class Program { static voi原创 2021-08-06 11:01:39 · 2277 阅读 · 0 评论 -
C#四舍五入保留小数
四舍五入保留n位小数使用Math.Round()方法,详情如下 // // 摘要: // 将双精度浮点值舍入到指定数量的小数位,并将中点值舍入到最接近的偶数。 // // 参数: // value: // 要舍入的双精度浮点数。 // // digits: // 返回值中的小数数字。 //原创 2021-08-06 10:55:34 · 998 阅读 · 0 评论 -
WPF画圆弧 前台、后台两种方式
WPF制作了一个环形的进度条,如图,其中主要就是使用Path,然后给新建圆弧,前台Path.Data是不可能的了,要后台新建圆弧,接下来就是相应方法先给个xaml的例子 <!--起点 起点x,起点y 画椭圆 长轴,短轴 旋转角度 是否是优弧 正角方向绘制 终点x,终点y --> <Path x:Name="cycleProces...原创 2020-03-25 21:37:44 · 3076 阅读 · 0 评论 -
后台给WPF的Path.Data赋值方法
后台给WPF的Path.Data赋值方法:第一种,直接转换类型 var converter = TypeDescriptor.GetConverter(typeof(Geometry)); path.Data = (Geometry)(converter.ConvertFrom("M 0,25 C 25,-30 30,80 60,25"));...原创 2020-03-25 21:38:30 · 2590 阅读 · 0 评论 -
OpenCV的Mat变量如果显示在WPF界面中
首先需要有OpenMV,使用Nuget安装如下:OpenCvSharp中有把mat转换成Bitmap的方法,我们只需要把Bitmap转化成ImageSourec即可Xmal中使用控件ImageImage.Source = MatToBitmapImage(image); //Mat转成BitmapImage publi...原创 2020-03-25 21:01:58 · 1605 阅读 · 0 评论 -
Inno打包安装包神器
打包神器,免费软件,都是基本功能,官方下载网址https://jrsoftware.org/isdl.phpGithub项目地址:https://github.com/jrsoftware/issrcCSDN下载(本是0积分):https://download.csdn.net/download/shaynerain/12269461接下来是使用过程,分为两部分,新项目新建、...原创 2020-03-25 20:00:01 · 474 阅读 · 0 评论 -
Unity调用Input.GetAxis出错
You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings编辑->项目设置->Player->其他设置->...原创 2020-03-25 00:19:02 · 6368 阅读 · 0 评论 -
C#解决重复订阅事件
由于设计中切面切换比较多,事件订阅比较复杂,切来切去有可能那里多订阅,造成多次订阅,重复进入事件处理,一致想着如何判断当前有没有订阅,各种查阅类库,无果,突发奇想,反其道而行之,不去判断,每次取消订阅,然后再订阅,即使没有订阅,取消订阅也不会出错,方法目前可行如下所示:BaseData.ServoThread.ServoThreadEvent -= ServoThread_Se...原创 2020-03-24 22:23:28 · 2219 阅读 · 3 评论 -
C# List排序
之前写过排序,写的不够准确,这篇写的简单清晰对于简单类型可直接使用Sort方法如下所示:List<int> listlist.sort()如果里面是自定义类型,则使用Sort加委托的方式,如下所示 class P { public int A; } List<P> p...原创 2020-03-24 22:18:18 · 118 阅读 · 0 评论 -
WPF动态读取显示图片
首先xaml中添加Image控件<Imagex:Name="MyImage"/>cs文件中新建BitmapImageBitmapImageimagesouce=newBitmapImage();imagesouce=newBitmapImage(newUri(AppDomain.CurrentDomain.BaseDirectory+"p...原创 2019-10-19 16:12:43 · 1517 阅读 · 0 评论 -
WPF与MVVM的实现(五)注册路由事件
接触WPF已经有两年,大大小小开发过几个项目,但从来没有系统的去学习过。几次开发项目时都觉得十分的恼火,太多的事件稍微考虑不到位就会带来麻烦,为此特地系统的看了一本《C#高级编程》第10版,了解到MVVM框架,看了之后十分欢喜,本篇记录研究MVVM过程。0001 为什么要注册路由事件当界面上有二十个按钮,分别带表不同的指令,你可以一个个绑定命令,这要绑定很多命令,当然也可以使用带参数的命令...原创 2019-10-19 16:11:25 · 640 阅读 · 0 评论 -
WPF与MVVM的实现(四)命令绑定
接触WPF已经有两年,大大小小开发过几个项目,但从来没有系统的去学习过。几次开发项目时都觉得十分的恼火,太多的事件稍微考虑不到位就会带来麻烦,为此特地系统的看了一本《C#高级编程》第10版,了解到MVVM框架,看了之后十分欢喜,本篇记录研究MVVM过程。0001 ICommand接口的实现publicclassRelayCommand:ICommand{...原创 2019-10-19 16:10:17 · 938 阅读 · 0 评论 -
WPF与MVVM的实现(三)List的数据绑定
接触WPF已经有两年,大大小小开发过几个项目,但从来没有系统的去学习过。几次开发项目时都觉得十分的恼火,太多的事件稍微考虑不到位就会带来麻烦,为此特地系统的看了一本《C#高级编程》第10版,了解到MVVM框架,看了之后十分欢喜,本篇记录研究MVVM过程。0001 ObservableCollection替代List为什么要使用ObservableCollection替代List呢,我...原创 2019-10-19 16:02:08 · 3527 阅读 · 0 评论 -
WPF与MVVM的实现(二)数据绑定
接触WPF已经有两年,大大小小开发过几个项目,但从来没有系统的去学习过。几次开发项目时都觉得十分的恼火,太多的事件稍微考虑不到位就会带来麻烦,为此特地系统的看了一本《C#高级编程》第10版,了解到MVVM框架,看了之后十分欢喜,本篇记录研究MVVM过程。0001 INotifyPropertyChanged接口的使用InotifyPropertyChanged接口的作用是通知UI后台数据...原创 2019-10-19 15:07:28 · 895 阅读 · 0 评论 -
WPF与MVVM的实现(一)MVVM简介
接触WPF已经有两年,大大小小开发过几个项目,但从来没有系统的去学习过。几次开发项目时都觉得十分的恼火,太多的事件稍微考虑不到位就会带来麻烦,为此特地系统的看了一本《C#高级编程》第10版,了解到MVVM框架,看了之后十分欢喜,本篇记录研究MVVM过程。0001 MVVM是用来干什么的最开始开发WPF的时候写出来的代码不堪入目,只能是一个成长的过程,刚开始拖动一个按钮,添加点击事件,...原创 2019-10-19 15:03:04 · 949 阅读 · 0 评论 -
WPF线程外激活UI响应
voidUIAction(Actionaction){System.Threading.SynchronizationContext.SetSynchronizationContext(newSystem.Windows.Threading.DispatcherSynchronizationContext(App.Cu...原创 2019-10-19 12:46:01 · 252 阅读 · 0 评论 -
WPF应用程序内嵌网页
WPF内嵌网页,可以将网页本地化,经查找相关资料后,决定采用CefSharp1、首先新建WPF工程,打开工具进入NUGET,搜索CefSharp,然后安装CefSharp.Wpf2、完成后,将项目改为x64或者x86,然后添加引用,这里有两种方法分开来说,大同小异3、方法一:直接在xaml文件中引用,文件如下<Windowx:Class="WpfAppl...原创 2019-10-19 12:45:10 · 545 阅读 · 0 评论 -
WPF应用程序引用Merto风格
1、项目中右键,选择NuGet2、搜索MahApps.Metro,点击安装,我已经安装过3、xaml中添加引用xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"4、修改xaml的Window<Controls:MetroWindow><...原创 2019-10-19 12:42:12 · 201 阅读 · 0 评论 -
WPF中TextBox只输入数字
1、首先添加一个textbox,然后添加上去,一下修改的时候name属性并没有修改,所以还是labe,其中一句很重要的话就是要禁止输入法,否则当用复合键的时候回提交给输入法的Process来处理<TextBoxx:Name="labe3"InputMethod.IsInputMethodEnabled="False"KeyDown="SetKey"Text="角度"Ma...原创 2019-10-19 12:22:11 · 709 阅读 · 0 评论 -
十分好看的Modern UI for WPF的移植(一)获取源码&运行demo
Modern UI for WPF一个国外的开源界面,界面简洁、清新,嵌入自己的项目十分简单,可很好的嵌入多个不同页面,将多个软件集合成一个,用起来非常棒,非常的喜欢,下面讲解移植过程。该教程我也没想好要做几个,首先就先做第一个,获取源码运行demo1、从GitHub上面获取源码,直接打开VS克隆到本地 URL为:https://github.com/firstfloorsoftware/mu...原创 2019-10-19 12:17:35 · 1293 阅读 · 0 评论