自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(145)
  • 收藏
  • 关注

原创 WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式

一.前言   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。 本文主要内容: DataGrid自定义样式; ListView自定义样式; 二.DataGrid自定义样式 DataGrid是常用的数据列表显示控件,先看看实现的效果(动态图,有点大): Data...

2022-11-07 21:26:25 861 1

原创 WPF自定义控件与样式(6)-ScrollViewer与ListBox自定义样式

一.前言   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。 本文主要内容: ScrollViewer的样式拆解及基本样式定义; ListBox集合控件的样式定义;二.ScrollViewer自定义样式 ScrollViewer在各种列表、集合控件中广泛使...

2022-11-07 21:26:11 763

原创 WPF自定义控件与样式(14)-轻量MVVM模式实践

一.前言   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。   MVVM是WPF中一个非常实用的编程模式,充分利用了WPF的绑定机制,体现了WPF数据驱动的优势。 图片来源:(WPF的MVVM)  关于MVVM网上很多介绍或者示例,本文不多做介绍了,本文的主要目的是提...

2022-11-07 21:25:12 523

原创 WPF自定义控件与样式(9)-树控件TreeView与菜单Menu-ContextMenu

一.前言   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。   本文主要内容: 菜单Menu的自定义样式; 右键菜单ContextMenu的自定义样式; 树控件TreeView的自定义样式,及右键菜单实现。 二.菜单Menu的自定义样式   自定义菜单样式的...

2022-11-07 20:23:07 842

原创 WPF自定义控件与样式(8)-ComboBox与自定义多选控件MultComboBox

一.前言   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。   本文主要内容: 下拉选择控件ComboBox的自定义样式及扩展; 自定义多选控件MultiComboBox; 二.下拉选择控件ComboBox的自定义样式及扩展 2.1基本样式   先看看基础效...

2022-11-07 20:22:55 926

原创 WPF自定义控件与样式(5)-Calendar/DatePicker日期控件自定义样式及扩展

一.前言   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。本文主要内容: 日历控件Calendar自定义样式; 日期控件DatePicker自定义样式,及Label标签、水印、清除日期功能扩展; 二.Calendar自定义样式 先看看效果: 从上面图可以看...

2022-11-07 20:22:42 1021

原创 WPF自定义控件与样式(4)-CheckBox/RadioButton自定义样式

一.前言   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。本文主要内容: CheckBox复选框的自定义样式,有两种不同的风格实现; RadioButton单选框自定义样式,有两种不同的风格实现; 二. CheckBox自定义样式 2.1 CheckBox基本...

2022-11-07 20:22:40 329

原创 WPF自定义控件与样式(3)-TextBox & RichTextBox & PasswordBox样式、水印、Label标签、功能扩展...

一.前言.预览   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。本文主要是对文本输入控件进行样式开发,及相关扩展功能开发,主要内容包括: 基本文本框TextBox控件样式及扩展功能,实现了样式、水印、Label标签、功能扩展; 富文本框RichTextBox控件样式...

2022-11-07 20:22:35 1035

原创 WPF自定义控件与样式(12)-缩略图ThumbnailImage /gif动画图/图片列表

一.前言   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。   本文主要针对WPF项目开发中图片的各种使用问题,经过总结,把一些经验分享一下。内容包括:WPF常用图像数据源ImageSource的创建; 自定义缩略图控件ThumbnailImage,支持网络图片、...

2022-11-07 20:22:22 531

原创 C#设计模式之二工厂方法模式(Factory Method Pattern)【创建型】

C#设计模式之二工厂方法模式(Factory Method Pattern)【创建型】 原文:C#设计模式之二工厂方法模式(Factory Method Pattern)【创建型】一、引言 在上一篇文章中我们讲解了过渡的一种模式叫做【简单工厂】,也有叫【静态工厂】的,通过对简单工厂模式得了解,我们也发现了它的缺点,就是随着需求的变化我们要不停地修改工厂里面的方法的代码,需求变...

2022-11-07 20:22:06 527

原创 WPF自定义控件与样式(11)-等待/忙/正在加载状态-控件实现

一.前言   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。   本文主要有三种实现方式: 简单忙碌状态控件BusyBox; Win8/win10效果忙碌状态控件ProgressRing; 弹出异步等待框WaitingBox; 二.简单忙碌状态控件BusyBox...

2022-11-07 20:22:03 339

原创 WPF自定义控件与样式(15)-终结篇 & 系列文章索引 & 源码共享

系列文章目录WPF自定义控件与样式(1)-矢量字体图标(iconfont)WPF自定义控件与样式(2)-自定义按钮FButtonWPF自定义控件与样式(3)-TextBox & RichTextBox & PasswordBox样式、水印、Label标签、功能扩展WPF自定义控件与样式(4)-CheckBox/RadioButton自定义样式WPF自定义控件与样式...

2022-11-07 19:14:24 650

原创 WPF自定义控件与样式(13)-自定义窗体Window & 自适应内容大小消息框MessageBox

一.前言   申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接。   本文主要内容: 自定义Window窗体样式; 基于自定义窗体实现自定义MessageBox消息提示框; 二.自定义Window窗体样式   自定义的Window窗体效果:   因为WPF默...

2022-11-07 19:04:09 1007

原创 MD5 DES RSA

加密MD5不可逆加密,加密后可以是16位,也可以是32位,任何语言的MD5加密后结果相同。private static string MD5(string str){ var md5 = System.Security.Cryptography.MD5.Create(); //计算字符串的散列值 var bytes = md5.ComputeHash(Encodi...

2020-11-12 16:21:00 123

原创 IO操作Helper类

public static class FileOperateHelp { /// <summary> /// 写 /// </summary> /// <param name="fileName"></param> /// <param name="cont...

2020-11-12 14:42:00 235

原创 Dispatcher的Invoke和BeginInvoke

WPF的应用程序运行时,就有一个主线程(UI线程)和其他的一些子线程。子线程是不能修改UI线程,必须通过UI线程的Dispatcher来完成。简单点来说:子线程是不能修改程序UI的,除非用UI线程的Dispatcher来注册。例如:private void Invoke_Button(object sender, RoutedEventArgs e)  { ...

2020-09-18 17:09:00 935

原创 MySQL

转载前言对于Web三大模块的后端数据库模块,只要你是做过项目都会有涉及与了解,无论你是简单的增删改查,对于所写SQL语句都需要去查询才能够完善,亦或是对SQL语句都熟烂于心,无论是单表的查询操作,或是多表的组合查询都能够信手拈来,但这些也都是SQL语句部分,对于SQL数据库的基础真的是太多太多,面试时候遇到的每一家公司问到的也都很少出现重复,但是主要的知识点也就摆在哪里。在下面...

2020-08-07 16:35:00 603

原创 C# 多线程阻塞和继续

运用ManualResetEvent类来对线程进行堵塞和持续操作。  它有三个重要的办法:Reset、Set和WaitOne。  1、首先介绍一下它的构造函数:  publicManualResetEvent(boolinitialState);  参数initialState,假如为true,则将初始状况设置为停止;假如为false,则将初始状况设置为非停止。  这是什么...

2020-07-13 09:16:00 2574

原创 VS DLL引用细节

在程序需要引用内部build生成的DLL时,选择References--》右键Add References--》Projects这里添加引用的好处是,程序在build会按照DLL相互引用的顺序生成DLL,不会造成生成一个DLL时,它所需要的DLL还未生成成功,造成build失败若引用的是程序外部的DLL,则:...

2020-07-09 17:14:00 354

原创 VS启动项目 This item does not support previewing

VS在Build时,显示This item does not support previewing编译不通过,可能原因:项目的.NET Framework没选对鼠标右键--》属性--》Application-->Target framework

2020-07-08 17:34:00 588

原创 C#知识结构图

2020-06-11 09:01:00 352

原创 PassEventArgsToCommand = "true"

PassEventArgsToCommand = "true"传递鼠标事件参数到命令Visibility隐藏和显示转换为True or False{Binding IsQueryModel, Converter={converterExtensions:BoolToVisibilityConverter}} 对象和实例的区别Person p = new Per...

2020-06-11 08:54:00 1004

原创 如何在 ContentControl中添加xaml

Content = {Binding xxxViewModel.View}创建UserControl.xaml:xxxView.xaml(.cs文件中加入MEF)创建IxxxView接口:IView创建xxxViewModel(MEF):ActivableViewModel<IxxxView>,IxxxViewModel在构造函数(MEF)创建IxxxView...

2020-06-11 08:51:00 275

原创 Innosetup 根据安装选择语言显示自定义文本

[Languages]Name: "en"; MessagesFile: "compiler:Default.isl"; Name: "sc"; MessagesFile: "compiler:Languages\ChineseSimplified.isl";[CustomMessages]en.FullInstall = Full Installsc.FullInstall = ...

2020-04-26 16:52:00 685

原创 Innosetup 检测安装路径是否包含中文

[Code]// 检查安装路径是否是英文function IsEnglishStr(file: String): Boolean;var value: Integer; len: Integer; i: Integer;begin Result := true; len := length(file);for i := 1 to len do begin // 将字符转成...

2020-04-26 16:47:00 655

原创 Binding几种绑定方式

绑定到DataContext:<Button Content=“{Binding DataTime}”/>绑定到DataContext,并设置绑定模式:<Button x:Name="btn" Content="{Binding DataTime,Mode = OneTime}"/>绑定到DataContext,并设置转换模式:<Butto...

2020-04-09 14:54:00 1491

原创 Mutex

用途:用于控制一个应用程序只有一个实例运行。举例:class Client{privatestatic Mutex _mutex;static void Main(){if( ! IsStarted()){Current.ShutDown();return;}....}private bool IsStarted(){_mutex = new M...

2020-04-02 10:42:00 173

原创 DataAnnotation特性列举

DataAnnotation 特性由.NET 3.5中引进,给.NET中的类提供了一种添加验证的方式。DataAnnotation由命名空间System.ComponentModel.DataAnnotations提供。下面列举实体模型中常用的DataAnnotation特性:KeyAttribute:对数据库中表的主键的设置[Key]public int OrderID { get;...

2020-04-01 15:03:00 1059

原创 SQL管理操作

数据库列出所有数据库:SHOW DATABASES;创建新数据库:CREATE DATABASE <数据库名称>;删除数据库:DROP DATABASE <数据库名称>;切换到当前数据库:USE <数据库名称>;表列出当前数据库所有表:SHOW TABLES;查看表结构:DESC <表名>;创建表:CREATE TABL...

2020-04-01 13:29:00 185

原创 SQL修改数据

INSERT:INSERT INTO <表名>(字段1,字段2,...) VALUES (值1,值2,...);UPDATE:UPDATE <表名> SET 字段1=值1,字段2 = 值2,... WHERE ...;DELETE:DELETE FROM <表名> WHERE ...;...

2020-04-01 13:13:00 977

原创 SQL查询数据

基本查询SELECT * FROM <表名>; 可以查询一个表的所有行和所有列的数据。SELECT 1; //测试数据库连接;条件查询SELECT * FROM<表名> WHERE <条件表达式>;<条件表达式>:<条件1> AND <条件2><条件1>OR &l...

2020-04-01 13:03:00 694

原创 SQL主键、外键

主键:唯一区分出不同的记录的字段。选取主键原则:不使用任何业务相关的字段作为主键。常见可作为id字段的类型:自增整数类型全局唯一GUID类型(GUID算法通过网卡MAC地址、时间戳和随机数生成的字符串)联合主键:两个或更多的字段都设置为主键。(允许一列有重复)外键:实现一对多、多对多和一对一的关系。可以通过数据库来约束,也可以不设置约束,仅靠应用程序的逻辑来保证。...

2020-03-31 17:28:00 325

原创 SQL主键、外键、索引

主键:唯一区分出不同的记录的字段。选取主键原则:不使用任何业务相关的字段作为主键。常见可作为id字段的类型:自增整数类型全局唯一GUID类型(GUID算法通过网卡MAC地址、时间戳和随机数生成的字符串)联合主键:两个或更多的字段都设置为主键。(允许一列有重复)外键:实现一对多、多对多和一对一的关系。可以通过数据库来约束,也可以不设置约束,仅靠应用程序的逻辑来保证。一...

2020-03-31 17:28:00 334

原创 MEF(Managed Extensibility FrameWork) API

作用:创建可扩展的轻量级应用程序的库。可以让扩展在程序内重复使用,还可以跨程序重复使用。导出Export:把部件放到容器中,供其它部件使用。导入Import:把部件从容器中拿出来使用。导入和导出必须具有相同的约定:协定类型参数&& 协定名称参数隐式协定:协定类型参数和协定名称参数将从修饰的属性推断而出。导出的类型必须与协定类型相同、派生自协定类型,或者实...

2020-03-28 15:49:00 185

原创 装饰模式(Decorator Pattern)【结构型】

意图:动态地给对象增加一些额外的职责。结构图:public abstract class Component{public abstract void Operation();}public classConcreteComponent:Component{public override void Operation(){....}}publi...

2020-03-26 09:42:00 87

原创 扩展方法

用途:在不修改源码的情况下,为某个类增加新的方法。注意:1.C#只支持扩展方法,不支持扩展属性、扩展事件;2.方法名无限制,第一个参数必须带this,表示要扩展的类;3.定义扩展方法的类必须是静态类;4.扩展方法虽然是public的静态方法,但是生成以后是实例方法,使用时需要先实例化对象,通过对象.方法名进行调用扩展方法。/// <summary>/// 静态...

2020-03-24 14:40:00 151

原创 Abstract 和 Virtual

Virtual(虚函数):用于在基类中修饰方法。1.在派生类中override重写该方法。在对派生类实例的调用时,该虚方法使用的是派生类重写的方法。2.在派生类中没有重写该方法。在对派生类实例的调用中,该虚方法使用的是基类定义的方法。注意:1.虚函数必须有实现(哪怕是一对大括号)。2.虚函数可以被子类重写。Abstract(抽象方法、抽象类):只用于在抽象类中修饰方法...

2020-03-24 13:07:00 114

原创 桥接模式(Bridge Pattern)【结构型】

意图:将抽象部分与实现部分分离,使它们可以独立的变化。结构图:public abstarct class Implementor{public abstract void OperationImpl();}public abstarct classConcreteImplementorA : Implementor{public override void Ope...

2020-03-24 10:55:00 135

原创 适配器模式(Adapter Pattern)【结构型】

意图:将类的接口转换成客户希望的另一个接口。结构图:1.对象适配器2.类适配器对象适配器实现:public class Target{public virtual void Request(){.....}}public class Adaptee{public virtual void SpecificRequest(){....}}...

2020-03-24 10:20:00 111

原创 原型模式(Prototype Pattern)【创建型】

意图:使用原型实例指定创建对象的种类,然后通过拷贝这些原型来创建新的对象。//抽象原型public abstract class Prototype{public abstract void Fight();public abstract void BegAlms();public abstract Prototype Clone();}public class ...

2020-03-23 17:20:00 88

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除