随笔分类 - C#
C Sharp,微软的高级编程语言
摘要:除了上一篇中提到的对字符串的字符替换操作,去掉Json中的转义符反斜杠\之外,还发现了更加简单的办法。 就是使用Newtownsoft.Json序列化Json时,将嵌套的Json对象(字符串)转为JObject类型即可! 用法可参考官网的一个例子,API就两行代码! 这样生成的嵌套Json就不再是s
阅读全文
摘要:上一篇说到的嵌套Json带有斜杠的问题,如下图: 上一篇中用反射C#类的方法,在序列化Json阶段实现了去掉斜杠,现在还有一种相对更简单的方法,就是在反序列化阶段,读取Json时通过字符串的操作,把这些斜杠去掉: 注意反斜杠\的转义。这种方式更简便一些。 参考:https://blog.csdn.n
阅读全文
摘要:策划填Excel表时,约定对于复杂类型的数据采用Json的格式填写。如下图,D列的内容是Json数据。 单元格中的Json如下。 择使用ExcelDataReader这个库读Excel时,对于单元格是Json字符串的情况,读取得到的Json会把这段嵌套的Json转为带斜杠(转义符)的字符串,类似下图
阅读全文
摘要:需求:给策划们写一个PC端(Window)的Excel导表工具。本来用OpenFile打开FileExplorerDialog后让他们自己选择想要添加的Excel文件就行了,结果有个需求是希望能拖拽Excel文件直接添加进来,觉得这样做更方便。 桌面应用用winform和wpf来写的话,这个功能应该
阅读全文
摘要:概要 在传统的C#项目中,用Conditional特性做条件编译时,需要在Visual Studio中项目的属性里添加上条件编译符号,用法参考这篇文章。 而在Unity项目中,条件编译符号需要在Unity Editor编辑器中添加。 为什么要用条件编译 Unity中最常见的使用条件编译的情况就是分平
阅读全文
摘要:需求:打开一张图片后,自由调节图片的颜色(色调)。 思路:读取显示一张图片后,用ColorPicker取色器选择一种颜色,之后将图片的色调调节为该颜色。 工具: 1、图像工具 ImageMagick(.Net版)http://www.imagemagick.org/script/develop.ph
阅读全文
摘要:Protobuf的使用流程 protobuf参考教程:https://www.jianshu.com/p/b135676dbe8d 手写.proto文件后,用CMD命令行运行protoc.exe编译器,进入.proto文件路径生成C#文件,再把C#文件放到Unity项目中使用。 插件protobuf
阅读全文
摘要:问题:在C#脚本定义了public Dictionary字典,然而在编辑器检视面板Editor Inspector中看不到(即无法序列化字典)。即不能在编辑器中拖拽给字典赋值。 目标:检视面板Inspector拖拽给Dictionary字典赋值。 解决思路:先用结构体struct模拟Dictiona
阅读全文
摘要:目标:客户端程序在启动时,自动联网检查服务端是否有新的版本,有则提示用户更新客户端。 思路: 1、打开Visual Studio,在主体程序的解决方案下再新建一个叫自动更新程序的项目。主体程序的目录是D:\workspace\MyProject\Client\,自动更新程序的目录是D:\worksp
阅读全文
摘要:问题描述 正常使用右键菜单ContextMenu时,如果菜单项是不变的,可以直接在XAML中写死,如下是给一个Button按钮添加了右键菜单功能。 此时整个MenuItem菜单项都是可以响应点击的。 然而项目中通常右键菜单项MenuItem的内容是不固定的,是通过ItemsSource绑定了集合。集
阅读全文
摘要:先定义Button按钮并绑定事件。 已经定义好了事件后,不点击按钮,如何靠代码动态触发按钮的点击事件? 方法一: 方法二:更优雅的方式 参考: https://stackoverflow.com/questions/728432/how-to-programmatically-click-a-but
阅读全文
摘要:问题:两个ListBox嵌套后,当鼠标位于内部ListBox上,鼠标滚轮事件会被内部ListBox接收,导致外层ListBox不能用鼠标滚轮滑动!现在的需求是该事件要能给外部ListBox处理,即嵌套的ListBox应该由外层ListBox来接收鼠标滚轮事件。 思路:根据WPF的冒泡路由事件,鼠标滚
阅读全文
摘要:需求:WPF项目中要做用户的商铺主页,由于考虑到每个商家的主页布局各不相同,不能用XAML写死布局。最好的办法是WPF这边XAML写好一个容器,用户使用HTML可视化编辑器(比如这个)来准备好网页,输出HTML网页文件,再将网页嵌入WPF中。 选择插件:Webkit.Net只支持32位的,已经好多年
阅读全文
摘要:需求是点击按钮后,弹出弹窗播放视频。按钮的点击事件如下。 运行效果如下:
阅读全文
摘要:百度搜到的靠前的几篇文章,都是写了两种API的使用实例,但并没有说清两者的具体差别。 直接上stackoverflow搜才是正确的姿势。(想上谷歌,然而十/九_大|期间VPN各种被墙,就很气) 参考: https://stackoverflow.com/questions/6192898/threa
阅读全文
摘要:要使用user32.dll的MessageBox弹窗消息,自然需要引入user32.dll到项目中。 一个最简单的实例如下: 运行项目后,直接弹出弹窗消息。 这是C#使用外部DLL中的方法,项目的引用中并没有显示该user32.dll。
阅读全文
摘要:TreeView控件的用法还是有蛮多坑点的,最好记录一下。 参考项目: https://www.codeproject.com/Articles/26288/Simplifying-the-WPF-TreeView-by-Using-the-ViewMode 静态的树形结构 如果树形结构的所有子节点
阅读全文
摘要:检查List列表中的重复项 思路是先把第一个数字依次与后面所有数字比较,然后把第二数字一次与后面所有数字比较。。。 快速排序 http://ahalei.blog.51cto.com/4767671/1365285
阅读全文
摘要:界面:WPF(MVVM)中将集合类控件ItemsControl的ItemsSource绑定到了ViewModel中的ObservableCollection列表,ItemsControl.ItemTemplate模板中是一个Image图片控件。 问题:当数据层发生改变,例如列表新增一个元素后,若之后
阅读全文
摘要:帐号系统中,用户注册时,在向服务器发送校验请求之前,客户端会先进行用户填写内容的校验(主要靠正则表达式)。 由于校验注册的逻辑在多个项目中可以重用,这类通用的代码最好记录下来。 界面内容大致如下。现在以为校验前面四项为例:校验用户名、昵称、密码、确认密码。 客户端在每个控件失去焦点时,校验该控件输入
阅读全文