- 博客(94)
- 资源 (13)
- 收藏
- 关注
原创 C# 压缩图片并保存到本地
然后,根据指定的图片类型匹配对应的编码器信息。如果指定的格式在已知的格式中不存在,返回默认的。接收一个原始图片的字节数组、需要保存的图片类型、输出路径和图片质量。接下来,方法创建一个编码参数对象,设置图片的质量。之后,创建一个编码参数对象,设置图片的质量。接收一个原始图片的路径、输出路径和图片质量。方法获取原始图片的类型对应的编码器信息。以下用于获取指定图片类型的编码器信息。方法获取指定图片类型对应的编码器信息。方法将压缩后的图片保存到指定的输出路径。方法将压缩后的图片保存到指定的输出路径。
2025-02-05 13:23:33
375
原创 C# 单例模式继承
简介:单例模式是软件工程中最著名的模式之一。从本质上讲,singleton 是一个只允许创建自身的单个实例的类,并且通常提供对该实例的简单访问。最常见的是,单例不允许在创建实例时指定任何参数 - 否则,对实例进行第二次请求但使用不同的参数可能会出现问题!(如果对于具有相同参数的所有请求,应访问同一实例,则工厂模式更合适。通常,单例的要求是它们是惰性创建的 - 即直到第一次需要实例时才创建实例。版本3:尝试使用 Double-Check 的线程安全锁。版本1:未考虑线程安全锁(不建议使用)
2024-10-07 10:15:24
729
原创 C# 反射详解
当类里面出现多个相同名称的方法,则需要指定传入参数的类型。本文主要是对反射进行详细介绍,具体可以参照微软。通过反射机制挂载和取消挂载事件。通过对象的类型实例化对象。获取对象里面所有属性信息。首先我们来定义一个类型。获取对象里面指定的属性。获取对象里面指定的方法。
2024-07-18 15:40:24
384
原创 C# Winform PropertyGrid显示中文
主要原理是在枚举上添加DescriptionAttribute属性,然后通过反射将其显示出来。方法1:继承StringConverter类。方法2:自定义界面显示。
2024-07-04 15:01:22
490
翻译 C# OpenTK教程 - 1.3 元素缓冲区对象
你可以通过定义六个顶点来制作两个看起来像一个形状的三角形来做到这一点,但这是一种浪费,因为一个矩形只需要四个顶点。虽然这看起来并不可怕,但考虑一个立方体:如果没有浪费,只有八个顶点,但如果你使用用两个三角形制作每个面的方法,那么仅一个立方体就需要 36 个顶点!有许多不同的方法可以做到这一点(例如三角形条),在本教程中,我们将使用所谓的元素缓冲区对象,这是一种缓冲区,允许我们重用顶点来创建多个基元。这个将使用顶点 0、1 和 3 创建一个三角形,使用 1、2 和 3 创建第二个三角形。
2023-06-30 13:48:36
823
原创 ASP.NET Core 2.1基于SignalR和Vue实时通讯
创建ASP.NET Core Web应用程序的空项目模板(SDK版本.NET Core -> ASP.NET Core2.1)在项目StartUp类内容修改如下:public class Startup{ // This method gets called by the runtime. Use this method to add services to the container. // For more information on how to configu.
2022-02-11 10:03:05
653
原创 C# Weifenluo教程
编程环境Visual Studio 2017.NET Framework 4.5WeifenLuo.WinFormsUI.Docking.dll (免积分传送门)创建项目创建Windows 窗体项目(.NET Framework)项目添加WeifenLuo.WinFormsUI.Docking.dll到引用中通过WeifenLuo.WinFormsUI.Docking.dll添加DockPanel添加到工具箱中(从菜单选择工具 -> 选择选择工具箱项 -> 选择 .NET F
2021-08-19 10:02:47
3144
1
原创 C# Windows Workflow Fundation之状态机
安装Windows Workflow Fundation插件在开始菜单打开Visual Studio Installer点击修改按钮点击单个组件选项卡在输入框输入workflow,勾选Windows Workflow Fundation,之后点击右下角修改按钮添加Workflow项目在想要添加工作流的位置右击 -> 添加 -> 新建项在弹出的窗口选择Workflow -> 选择活动 -> 点击添加添加状态机在活动窗口中添加StateMachin
2021-05-28 11:22:04
1125
3
原创 MySQL开启事件
-- 为了节省调试事件相关问题的时间,请记住,必须打开全局事件处理程序来处理事件。-- 查看全局事件是否开启SHOW VARIABLES WHERE variable_name='event_scheduler';-- 开启事件功能SET GLOBAL event_scheduler=1;DROP EVENT IF EXISTS EVENT_01;CREATE EVENT EVENT_01 ON SCHEDULE EVERY 1 MINUTE ON COMPLETION PRESERVE
2021-03-17 15:05:18
274
翻译 C# Tailor Your Application by Building a Custom Forms Designer with .NET
一些Windows窗体基础在我开始这个项目之前,有几个基本概念很重要。让我们从设计器的定义开始。设计器提供设计模式 UI 和组件的行为。例如,当您在窗体上放置按钮时,按钮的设计器是确定按钮的外观和行为的实体。设计时环境提供窗体设计器和属性编辑器,允许您操作组件和构建用户界面。设计时环境还提供可用于与设计时间支持进行交互、自定义和扩展的服务。窗体设计器为开发人员提供设计时服务和设计表单的设施。设计器主机与设计时环境一起管理设计器状态、活动(如事务)和组件。此外,还有几个与组件本身相关的概念非常重要。例如,
2021-01-04 11:25:44
511
原创 C# 在属性框显示UserControl的Text属性
[EditorBrowsable(EditorBrowsableState.Always)][Browsable(true)][DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)][Bindable(true)]public override string Text { get; set; }或[EditorBrowsable(EditorBrowsableState.Always),Browsabl
2020-12-29 14:04:09
2863
1
原创 ASP.NET Core 基于SignalR实时通讯的前后端分离技术
环境Visual Studio 2019ASP.NET Core 3.1创建项目从菜单中选择文件>新建项目。在创建新项目对话框中,选择ASP.NET Core Web 应用程序,然后选择下一步 。在“配置新项目”对话框中,将项目命名为SignalRChat,然后选择创建。在创建新的 ASP.NET Core Web 应用程序对话框中,选择.NET Core 和 ASP.NET Core 3.1 。选择空项目模板,然后选择创建 。添加Hub在项目中添加H
2020-12-07 10:28:24
3168
4
原创 ASP.NET Core 设置允许跨域访问
在Setup.cs文件ConfigureServices函数内添加:services.AddCors();在Setup.cs文件ConfigureServices函数内添加: app.UseCors(options => options .AllowAnyHeader() // 确保策略允许任何标头 .AllowAnyMethod() // 确保策略允许任何方法 .SetIsOriginAllowed(o .
2020-12-01 09:26:56
1024
翻译 C# OpenTK教程 - 1.2 你好三角形
图形管道在OpenGL中所有物体处在3D空间中,但屏幕和窗口是一个2D像素数组,因此OpenGL工作的很大一部分是将所有3D坐标转换为适合您屏幕上的2D像素。将3D坐标转换为2D像素的过程由OpenGL的图形管道管理。图形管道可分为两大部分:第一部分将3D坐标转换为2D坐标,第二部分将2D坐标转换为实际彩色像素。在本教程中,我们将简要讨论图形管道,以及如何利用它来创建花哨的像素。图形管道将一组3D坐标作为输入,并将这些坐标转换为屏幕上的彩色2D像素。图形管道可分为几个步骤,其中每个步骤都需要上一步的输出
2020-10-29 13:12:11
4094
原创 C# 关闭当前窗口打开另一窗口
在Program.cs里面加一个标志位public static bool FormOnClose { get; set; }在需要关闭的窗口内将该标志位置真当标志位为真的时候运行需要打开的窗口即可具体代码如下using System;using System.Windows.Forms;using XCore.Controls.Utility;namespace VacuumFurnaceAcquisitionSystem{ static class Program .
2020-10-17 11:56:57
3032
原创 C# 获取枚举的DescriptionAttribute内的字符串
本示例是将获取函数放置在静态类中,这样使用起来会更加方便public static string GetDescription<T>(this T value){ var type = typeof(T); var memberInfo = type.GetMember(value.ToString()).FirstOrDefault(); var descriptionAttribute = memberInfo.GetCustomAttribute
2020-09-30 10:52:28
488
原创 C# 错误 175: 具有固定名称“System.Data.SQLite.EF6”的 ADO.NET 提供程序未在计算机或应用程序配置文件中注册或无法加载
在configuration -> system.data -> DbProviderFactories节点下添加如下节点<add name="SQLite Data Provider" invariant="System.Data.SQLite.EF6" description=".NET Framework Data Provider for SQLite" type="System.Data.SQLite.EF6.SQLiteProviderFactory, System.Da.
2020-09-27 12:32:04
1149
原创 C# EntityFramework连接Sqlite (Database First)
添加如下引用EntityFramework.dllEntityFramework.SqlServer.dllSystem.Data.SQLite.dllSystem.Data.SQLite.EF6.dllSystem.Data.SQLite.Linq.dll在app.config内添加如下内容(没有可以自己新建一个)<configSections>xml <!-- For more information on Entity Framework config.
2020-09-11 13:10:32
1556
2
原创 ASP.NET Core 使用MySQL(Database First)
安装MySql.Data.EntityFrameworkCoreInstall-Package MySql.Data.EntityFrameworkCore安装Microsoft.EntityFrameworkCore.DesignInstall-Package Microsoft.EntityFrameworkCore.Design安装Microsoft.EntityFrameworkCore.ToolsInstall-Package Microsoft.EntityFrameworkCor
2020-08-18 11:07:41
673
原创 C# OpenTK教程 - 目录
更新中起步1.0 了解OpenGL1.1 创建窗口1.2 你好三角形1.3 元素缓冲区对象1.4 纹理1.5 多个纹理1.6 转换1.7 坐标系统1.8 相机照明2.1 颜色2.2 基本照明2.3 材料2.4 照明映射2.5 投光物2.6 多光源...
2020-08-15 14:19:45
2741
翻译 C# OpenTK教程 - 1.1 创建窗口
欢迎访问LearnOpenTK教程的第一个项目。本指南将教你如何从NuGet获取OpenTK,并打开您的第一个窗口。我们承诺这将是一个短暂的。从NuGet安装OpenTK已经发布到.NET官方的包管理NuGet上,点击链接下载。OpenTK 3可以安装在.NET Framework 2.0和任何衍生单声道版本上。在Visual Studio 2013/2015/2017中,点击工具 -> NuGet包管理 -> 程序包管理器控制台来访问程序包管理器这将调出程序包管理器控制台,一个Visu
2020-08-15 14:18:16
9428
3
原创 C# log4net纯代码设置参数
log4net.config参数设置<?xml version="1.0" encoding="utf-8" ?><configuration> <log4net> <root> <level value="ALL" /> <appender-ref ref="console" /> <appender-ref ref="file" /> </root>
2020-08-07 15:56:18
1045
2
原创 C# The user specified as a definer (‘root‘@‘%‘) does not exist
使用C#连接数据库时候一直会报错,数据库重新安装后错误任然存在,起初以为是数据库连接问题,但是经过多次修改仍未解决,最终采用逐行调试发现连接可以连接,在执行查询语句时出现报错。然后将查询语句复制到MySQL工作台内进行编辑,出现错误Error Code: 1449. The user specified as a definer ('root'@'%') does not exist最终判断是视图创建存在问题。解决办法:将CREATE ALGORITHM = UNDEFINED D
2020-07-23 13:57:38
284
原创 C# 利用反射机制开启控件双缓存
/// <summary>/// 设置控件的双缓存/// </summary>/// <param name="c">所需设置双缓存的控件或窗体</param>public static void SetDoubleBuffered(this Control c){ //Taxes: Remote Desktop Connection and painting //http://blogs.msdn.com/oldnewthing/a
2020-07-07 08:08:14
501
原创 C# 在DbContext内通过DbSet名称来访问DbSet
/// <summary>/// 在DbContext内通过DbSet名称来访问DbSet/// </summary>/// <typeparam name="T"></typeparam>/// <param name="dbContext"></param>/// <param name="name">DbSet的名称</param>/// <param name="sql">所需执行
2020-06-29 09:36:50
5127
原创 C# GDI+ 生成自定义进度条
/// <summary>/// 生成进度条/// </summary>/// <param name="graphics"></param>/// <param name="brush"></param>/// <param name="rect"></param>/// <param name="radius"></param>/// <param name="pe
2020-06-26 20:28:57
577
原创 C# EntityFramework连接MySQL (DbFirst)
在Model文件夹上右击 -> 点击"添加" -> 点击"新建项"选择ADO.NET实体数据模型 -> 输入名称 -> 点击"确定"在选择模型内容里选择来自数据库的EF设计器 -> 点击"下一步"在选择数据连接步骤点击新建连接 -> 在数据源部分点击"更改" -> 选择MySQL Database -> 点击"确定"输入服务器名称、账号、密码 -> 点击"确定"注意事项安装MySQL Connector/NET 6.9.12安装MyS.
2020-06-19 09:44:46
1688
原创 C# 利用类名字符串调用并执行类方法
/// <summary>/// 调用并执行指定类里面的函数/// </summary>/// <param name="className">需要调用的类名(包含其命名空间)</param>/// <param name="methodName">需要调用的方法名</param>public static void...
2020-05-04 09:05:56
2872
1
LabVIEW与Halcon联合编程实例
2022-10-07
SQLiteDemo.rar
2020-04-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人