03 2021 档案

摘要:1. 功能 系统换肤功能。 效果: 2.文件结构 2.1 FaceColorThemes.xaml 资源文件 2.2 class FaceColor : DependencyObject, ICloneable 各个颜色的依赖属性 2.3 class DefaultColorForFace 属性:定 阅读全文
posted @ 2021-03-15 23:03 鑫茂 阅读(362) 评论(1) 推荐(0)
摘要:1. 功能 上次在公众号看到一个转盘效果,觉得挺有意思,便也跟着实现并优化了一下。 具体功能: 将 n 个小圆沿着一个大圆的路径排列 能根据 n 的数量自适应各个小圆之间的间隔 定义一个大圆最多放 x 个小圆,当小圆的数量超出 x 个时,自适应沿着第二个大圆排序,大圆的半径依次递减,每个大圆上的数量 阅读全文
posted @ 2021-03-15 22:48 鑫茂 阅读(1179) 评论(0) 推荐(0)
摘要:1. 功能 点击色图(如下图)的某一点,获取该点的颜色。 2. 实现 2.1 思路 获取图片的像素数组,数组保存每个点的 4 个通道,其中 3 个是 RGB 像素通道,1个是 Alpha 值 获取鼠标点击点在色图中的位置 根据位置从像素数组中获取 4 个通道值 根据几个通道值组成颜色值 2.2 代码 阅读全文
posted @ 2021-03-15 22:41 鑫茂 阅读(602) 评论(0) 推荐(0)
摘要:1. 逻辑 封装各个数据库的访问方式; 以表为单位,定义 interface 接口,实现增删改查等操作,基于 Postgresql、Oracel 等数据库的具体实现类继承 interface; 封装 DataAccess 类,实现访问数据库的统一入口,通过反射的方式实现; 对 Postgresql、 阅读全文
posted @ 2021-03-13 11:09 鑫茂 阅读(170) 评论(0) 推荐(0)
摘要:1. 功能 做一个图片集合控件,在指定大小的区域内,以走马灯的动画效果呈现图片。 能根据图片的数量决定动画的方向。当图片集合的大小大于指定的大小,图片往反方向走,以便于能看到底部的图片;当图片集合的大小小于指定的大小时,图片往正方向走,以便于保证所有图片都一直在可视区域内。 根据图片的数量,决定动画 阅读全文
posted @ 2021-03-11 21:46 鑫茂 阅读(624) 评论(0) 推荐(0)
摘要:目录: System.Threading.Monitor:提供同步访问对象的机制; lock 是语法糖,是对 Monitor Enter 和 Exit 方法的一个封装 lock 案例 1. Monitor 1. 基本方法 public static void Enter(object obj); 在 阅读全文
posted @ 2021-03-11 21:43 鑫茂 阅读(638) 评论(0) 推荐(2)
摘要:1. 功能 模拟一个生产、消费的过程,不过这里没有做消息自动通知,而是消费者自己定时过去取。 一般的生产环境应该是在有新消息产生时,将新消息发送给消费者。 拿下面例子来举例,可在数据入队时,调用一个 event 方法,event 触发消费者的方法。 如果是不同设备之间的订阅,要么自己写 http 接 阅读全文
posted @ 2021-03-11 12:31 鑫茂 阅读(183) 评论(0) 推荐(0)
摘要:1. 类的关系 AutoResetEvent 和 ManualResetEvent 都继承自 System.Threading.EventWaitHandle 类(EventWaitHandle 继承自 WaitHandle); 用于线程交互 (或线程信号) 2. 常用方法 2.1 WaitHand 阅读全文
posted @ 2021-03-11 12:29 鑫茂 阅读(257) 评论(0) 推荐(0)
摘要:两个线程中的每一个线程都尝试锁定另外一个线程已锁定的资源时,就会发生死锁。 两个线程都不能继续执行。 托管线程处理类的许多方法都提供了超时设定,有助于检测死锁。 例如,下面的代码尝试在 lockObject 对象上获取锁。 如果在 300 毫秒内没有获取锁,Monitor.TryEnter 返回 f 阅读全文
posted @ 2021-03-11 12:28 鑫茂 阅读(147) 评论(0) 推荐(0)
摘要:1. 操作取消 1.1 步骤 实例化 CancellationTokenSource 对象,该对象管理取消通知并将其发送给单个取消标记 将 CancellationTokenSource.Token 属性返回的标记传递给每个侦听取消的任务或线程 为每个任务或线程提供响应取消的机制 if (token 阅读全文
posted @ 2021-03-11 12:26 鑫茂 阅读(802) 评论(0) 推荐(0)
摘要:1. 与 Task.Run() 的区别; 先看一下源码: public class Task : IThreadPoolWorkItem, IAsyncResult, IDisposable { public static Task Run(Action action) { StackCrawlMa 阅读全文
posted @ 2021-03-11 12:24 鑫茂 阅读(2100) 评论(0) 推荐(0)
摘要:IEnumerable<int> intList = Enumerable.Range(1, 15); foreach (int i in intList) { ThreadPool.QueueUserWorkItem(w => { Console.WriteLine("ThreadPool:" + 阅读全文
posted @ 2021-03-11 12:20 鑫茂 阅读(180) 评论(0) 推荐(0)
摘要:![](https://img2020.cnblogs.com/blog/1020027/202103/1020027-20210309192522741-723428598.png) 阅读全文
posted @ 2021-03-11 12:14 鑫茂 阅读(157) 评论(0) 推荐(1)
摘要:引用:LiveCharts,LiveCharts.Wpf 1. 示例 折线图 <Window ... xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"> <lvc:CartesianChart> //折线 <lvc:Ca 阅读全文
posted @ 2021-03-11 12:13 鑫茂 阅读(873) 评论(0) 推荐(0)
摘要:1. 使用 Winform 的 PictureBox 1.1 引用 dll WindowsFormsIntegration.dll System.Windows.Forms.dll System.Drawing.dll 1.2 XMAl代码 <Window x:Class="TestGif.Main 阅读全文
posted @ 2021-03-08 21:55 鑫茂 阅读(395) 评论(0) 推荐(0)
摘要:以下 F:/Debug/xx.exe 为客户端路径。 1. Web 调用 1.1 IE 内核的浏览器调用方式 js 函数调用如下: var a=new ActiveXObject("Wscript.Shell"); a.exec("F:/Debug/xx.exe params");(格式是:exe 阅读全文
posted @ 2021-03-08 21:47 鑫茂 阅读(166) 评论(0) 推荐(0)
摘要:1. base64 转图片 将 base64 转成 byte[] 将 byte[] 作为内存流保存到一个 BitmapImage 实例的流的源 把 BitmapImage 作为目标图片的 Source byte[] streamBase = Convert.FromBase64String(imag 阅读全文
posted @ 2021-03-08 21:46 鑫茂 阅读(622) 评论(0) 推荐(0)
摘要:1. 功能 系统截图。 2. 实现 2.1 思路 控件继承自 System.Windows.Media.Visual, 通过 System.Windows.Media.Imaging.RenderVisualToBitmap 把 Visual 对象转换为位图 rtb 将位图转成编码器接受的一帧,类型 阅读全文
posted @ 2021-03-08 21:45 鑫茂 阅读(435) 评论(0) 推荐(0)
摘要:1. 前提 原本是在大屏上展示系统,系统有个功能是加载第三方的网站,第三方网站按照大屏的分辨率写死了宽高; 现需要改到小屏展示系统,而这个第三方的网站不能随着 WebBrowser 窗口的尺寸调整网站内容的尺寸。 2. 解决思路 1)加载完毕后,调用 InvokeScript 方法执行在当前加载的文 阅读全文
posted @ 2021-03-08 21:43 鑫茂 阅读(158) 评论(0) 推荐(0)
摘要:1. 拖拽窗体 使用 System.Windows.Window 自带的 DragMove() 方法即可识别窗体拖动。 DragMove(); 2. 拖拽控件:复制、移动控件 <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="*"/> 阅读全文
posted @ 2021-03-08 21:41 鑫茂 阅读(967) 评论(0) 推荐(0)
摘要:1. 库类: \Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll System.Net.HttpListener 2. 代码 2.1 服务端 class Program { static HttpListen 阅读全文
posted @ 2021-03-08 21:38 鑫茂 阅读(5122) 评论(0) 推荐(1)
摘要:1. 代码 /// <summary> /// 文件上传下载控制器 /// </summary> public class FileController : ApiController { /// <summary> /// 上传文件 /// </summary> /// http://192.16 阅读全文
posted @ 2021-03-08 21:36 鑫茂 阅读(865) 评论(0) 推荐(0)
摘要:库类: Owin.dll Owin.IAppBuilder Microsoft.Owin.dll Microsoft.Owin.OwinContext Microsoft.Owin.Hosting.dll Microsoft.Owin.Hosting.WebApp Microsoft.Owin.Ho 阅读全文
posted @ 2021-03-08 21:34 鑫茂 阅读(784) 评论(0) 推荐(0)
摘要:helper 类封装 调用 1. 引用的库类 \Reference Assemblies\Microsoft\Framework\.NETFramework\v4.6\System.dll System.Net.HttpWebRequest 2代码 helper 类封装 /// <summary> 阅读全文
posted @ 2021-03-08 21:32 鑫茂 阅读(1175) 评论(0) 推荐(0)
摘要:1. 示例代码 using System; using System.IO; using System.Net.Http; /// <summary> /// 下载文件 /// </summary> /// <param name="serverFileName">服务器上文件名 如 close.p 阅读全文
posted @ 2021-03-08 21:30 鑫茂 阅读(12119) 评论(0) 推荐(0)
摘要:1. 需要的库类 \Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.Net.Http.dll System.Net.Http.HttpClient 2. 代码 public class HttpClientHe 阅读全文
posted @ 2021-03-08 21:27 鑫茂 阅读(1624) 评论(0) 推荐(0)
摘要:1. 需要的库类 \Reference Assemblies\Microsoft\Framework\.NETFramework\v4.7.2\System.dll System.Net.WebClient 2. 代码 var wc = new WebClient(); var url = "htt 阅读全文
posted @ 2021-03-08 19:39 鑫茂 阅读(824) 评论(0) 推荐(0)
摘要:1. 先在项目的 Settings.settings 新建需要的字段和类型 有需要还可设置初始默认值 2. 启动客户端时,获取 Properties.Settings 的属性值 public void Construct() { if (Properties.Settings.Default.IsR 阅读全文
posted @ 2021-03-08 19:26 鑫茂 阅读(568) 评论(0) 推荐(0)
摘要:个人经历的项目主要都是用 Postgresql 或 Oracle 数据库,本文非原创,从他处整理而来。 1. 库类 mysql.data.dll using MySql.Data.MySqlClient; 2. MysqlHelper 粗暴封装 /// <summary> ///MYSQLHelpe 阅读全文
posted @ 2021-03-04 18:55 鑫茂 阅读(566) 评论(0) 推荐(0)
摘要:1. 引入库类 Oracle.ManagedDataAccess.dll using Oracle.ManagedDataAccess.Client; 2. 粗暴封装 namespace xx { public class OracleSqlDao { public OracleSqlDao(str 阅读全文
posted @ 2021-03-04 18:52 鑫茂 阅读(706) 评论(0) 推荐(0)
摘要:引入库类 连接数据库 访问数据库 1)增删改数据库 2)查数据库 数据转换 事务 1. 引入库类 引入 Npgsql.dll using Npgsql; using NpgsqlTypes; 2. 连接数据库 /// <summary> /// 使用固定连接进行数据库的操作,默认false,表示每次 阅读全文
posted @ 2021-03-04 18:51 鑫茂 阅读(3356) 评论(1) 推荐(2)
摘要:public class Player { public string Id { get; set; } public string Name { get; set; } public int Age { get; set; } public bool IsPlaying { get; set; } 阅读全文
posted @ 2021-03-03 20:21 鑫茂 阅读(114) 评论(0) 推荐(0)
摘要:1. int 转换成 enum public enum Suit { Spades, Hearts, Clubs, Diamonds } Suit spades = (Suit)0; Suit hearts = Enum.Parse(typeof(Suit), "1"); Suit tryClubs 阅读全文
posted @ 2021-03-03 20:19 鑫茂 阅读(161) 评论(0) 推荐(0)
摘要:使用一:可用于捕获报错时。 using System.Diagnostics; ... StackTrace st = new StackTrace(true); string stackIndent = ""; for (int i = 0; i < st.FrameCount; i++) { S 阅读全文
posted @ 2021-03-03 20:18 鑫茂 阅读(308) 评论(0) 推荐(0)
摘要:在自助和局部变量窗口中固定属性 https://docs.microsoft.com/zh-cn/visualstudio/debugger/autos-and-locals-windows?view=vs-2019 固定数据提示、在数据提示中固定属性 https://docs.microsoft. 阅读全文
posted @ 2021-03-03 20:14 鑫茂 阅读(115) 评论(0) 推荐(0)
摘要:1. 委托 sequenceDiagram 方法->>委托: 返回值和入参一样 委托->>方法: 调用委托就是调用绑定的方法 delegate int NumTest(int num); int Add(int num) { return num + 10; } void Test() { NumT 阅读全文
posted @ 2021-03-03 20:12 鑫茂 阅读(76) 评论(0) 推荐(0)
摘要:引入 log4net.dll 项目->添加->新建项->应用程序配置文件,命名为 log4net.config,并把属性的复制到输出目录设置为 如果较新则复制,后续客户端需要读取在 debug 下的这个文件; 封装日志类 WriteLog 1. log4net.config <?xml versio 阅读全文
posted @ 2021-03-03 19:58 鑫茂 阅读(281) 评论(0) 推荐(0)
摘要:public static class LogHelper { private static readonly string _baseDir = AppDomain.CurrentDomain.BaseDirectory + "VILog"; private static DateTime _cu 阅读全文
posted @ 2021-03-03 19:45 鑫茂 阅读(146) 评论(0) 推荐(0)
摘要:using System.Windows.Forms; ... /// <summary> /// 选择保存文件的名称以及路径 取消返回 空""; /// </summary> /// <param name="fileName"></param> /// <param name="filter"> 阅读全文
posted @ 2021-03-03 19:35 鑫茂 阅读(251) 评论(0) 推荐(0)
摘要:1. string 1. 格式化填充 string str = "this {0} a {1}"; Console.WriteLine(string.Format(str, "is", "boy")); // this is a boy 2. 将数据合并成字符串 string[] strArr = 阅读全文
posted @ 2021-03-03 19:26 鑫茂 阅读(601) 评论(0) 推荐(0)
摘要:这里举例两种方式。 1. Newtonsoft.Json.JsonConvert 需要引用外部的 Newtonsoft.Json.dll /// <summary> /// 将json字符串转换为对象(使用Json.net) /// </summary> /// <param name="respo 阅读全文
posted @ 2021-03-03 19:25 鑫茂 阅读(437) 评论(0) 推荐(0)
摘要:1. 程序根目录: (D:\\...\\WpfApp1\\WpfApp1\\bin\\Debug") string exePath = Environment.CurrentDirectory; 2. 获取该进程的命令行 (\"D:\\...\\WpfApp1\\WpfApp1\\bin\\Debu 阅读全文
posted @ 2021-03-03 19:21 鑫茂 阅读(587) 评论(0) 推荐(0)
摘要:1. 若需要控制 exe 实例数量 bool ret; mutex = new System.Threading.Mutex(true, exename, out ret); if (!ret) { //"系统已经启动" Environment.Exit(0); } 2. 退出时 public Ap 阅读全文
posted @ 2021-03-03 18:43 鑫茂 阅读(1118) 评论(0) 推荐(2)
摘要:1. 点击事件的执行顺序 PreviewMouseLeftButtonDown PreviewMouseDown MouseLeftButtonDown MouseDown PreviewMouseLeftButtonUp PreviewMouseUp Click MouseLeftButtonUp 阅读全文
posted @ 2021-03-02 22:10 鑫茂 阅读(4477) 评论(1) 推荐(4)
摘要:1. 先上效果 <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"> <StackPanel Margin="50 0"> <local:PaginationControl IsDisplayFirstLastPageB 阅读全文
posted @ 2021-03-02 21:35 鑫茂 阅读(846) 评论(0) 推荐(0)