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

浙公网安备 33010602011771号