- 博客(24)
- 收藏
- 关注
原创 WPF 使用VisualStateManager实现自定义控件闪烁呼吸警报灯
1.添加一个新建的自定义控件LightControl1(注意不是用户控件!
2024-02-27 18:01:25 1474
原创 C#多线程通信
/eventWaitHandle发出信号Set,eventWaitHandleManualReset阻塞线程等待信号,EventWaitHandleManualReset发出信号后可以执行Console。//阻塞线程,等待释放信号从而继续执行下面的代码,一直等待。//CountdownEvent.Reset()//设置为InitialCount初始值。
2023-10-07 17:45:53 284
原创 C#同步与异步
比如:你打电话问书店老板有没有《红楼梦》,他说他要查一下才知道,这个时候你挂了电话,等他查到结果后再让他打电话回来告诉你。比如:你打电话问书店老板有没有《红楼梦》,他说他要查一下才知道,这个时候你不挂电话,直接等他查到结果。:在调用发出后,这个调用直接返回,没有返回结果,被调用者通过状态、通知来通知调用者。(等) :是指调用结果返回之前,当前线程会被挂起。意思是,在老板在查的时候,你可以去干点别的事情,偶尔确认一下老板有没有返回结果就行。: 在发出一个调用时,在没有得到结果之前,该调用就不返回,调用者。
2023-10-07 17:41:29 403
原创 C# INI配置文件的读写
initialization file的缩写,即初始化文件,通常存放的是一个程序的初始化信息,是Windows的系统配置文件所采用的存储格式,统管windows的各项配置。ini文件的后缀名不一定是.ini,也可以是.cfg、.conf、或者是.tx*。:最基本元素,包含参数名(name)和参数值(value),号后直到行尾均为注释。组成,每个 key 可以赋相应的值。:所有的参数以节为单位结合在一起。组成,每个section由若干。,而这只要借助几个函数即可完成。
2023-09-25 09:57:59 3274 1
原创 C#获取当前工作路径的七种方法
如果使用此方法获得应用程序所在的目录,应该注意:System.IO.Directory.GetCurrentDirectory()方法获得的目录路径随着OpenFileDialog、SaveFileDialog等对象所确定的目录而改变(切换工作目录)。System.Windows.Forms.Application.StartupPath或System.AppDomain.CurrentDomain.BaseDirectory可以获得应用程序运行所在的目录,它是不随你打开的文件夹而变的。
2023-09-22 17:46:15 8151 1
原创 程序运行显示MSVCP140D.dll缺失的解决办法
在obj目录中,有debug和release两个子目录,是项目生成dll的源目录,将生成好的dll复制到bin目录下。每个模块的编译结果读保存在obj目录下,最后会合并为一个.exe或者.dll文件,保存在bin目录下。Debug:调试版本,编译的结果通常包含调试信息,而且不做任何优化,提供强大的应用程序调试能力。该模式下生成两个文件:除了.exe或者.dll文件外,还有一个.pdb文件,该文件记录了代码中断点等调试信息。调试完后,用release版本发布,没有调试代码,减小程序体积,加快执行速度。
2023-09-22 09:26:44 4511 1
原创 C#启动外部程序的几种方法
二、通过Process类启动外部程序的一般流程。注:以上包含了以管理员权限运行外部程序的方法。启动外部程序通过事件监视其退出。2.配置启动选项(输入输出等)启动外部程序无限等待其退出;启动外部程序不等待其退出;1.创建Process对象。启动外部程序等待其推出;
2023-09-19 18:01:18 2485 1
原创 交换机的工作原理
当收到某一数据帧时,交换机根据该数据帧的目的MAC地址来查找MAC地址表,从而得到该地址对应的端口,即知道具有该MAC地址的设备是连接在交换机的哪个端口上然后交换机把数据帧从该端口转发出去。以太网交换机了解每一端口相连设备的MAC地址,将地址同相应的端口映射存起来放在交换机缓存中的MAC地址表中。1.交换机根据收到的数据帧中的源MAC地址建立该地址同交换机端口的映射,并将其写入MAC地址表中。使用IP的设备-------------三层交换机------------使用IP的设备B。应用于小型的局域网络。
2023-09-19 11:05:44 329
原创 WPF 一些笔记(属性,事件,资源...)
起点和终点之间有若干个中转站,从起点出发后经过每个中转站时要做出选择,最终以正确(如最短或者最快)的路径到达终点。
2023-08-29 15:54:20 126 1
原创 WPF动画
RenderTransform:是Button的属性,属性值是名为xx的TranslateTransform对象,改变这个对象的X和Y值就会让Button的显示位置(而不是真实位置)变化。布局控件(如:Border) - 事件触发器(Trigger) - 开始播放故事板(BeginStoryboard)- 故事板(Storyboard)- 动画(Animation)变化时间(Duration属性):数据类型为Duration(0:0:0:3)或(00:00:03)注意:用来制作动画的属性必须是依赖属性。
2023-08-25 16:56:16 408 1
原创 WPF 自定义控件实现定时自动读秒
2.在后台代码中需要添加两个依赖属性,这里用一个string类型的Times属性用来设置读秒的时间,一个ICommand类型的Clickcmd接口用来binding ViewModel里面的command的函数。1.添加一个自定义控件,在控件里面添加一个Border控件,设置相关属性,再在border中添加一个TextBlock控件,读秒时间显示在TextBlock中。目标:使用自定义控件实现双击控件自动读秒并且跳出弹窗,控件自动读秒倒计时,弹窗显示当前时间。
2023-08-24 10:08:08 283 1
原创 WPF 模板(Template)与样式(Style)
DataTemplate数据模板:数据内容的展现形式。与数据有关,即便这些数据多数都是固定值,但我可以用数据模板来改变他的表现方式,使不变值具有多变的样式。Style设置key值,控件引用其key'值来设置自身样式,如果style未设置key值,则作用域内所有TargetType类型控件都默认使用其样式。对控件属性样式重新定义,可运用模板属性来实现控件内部结构的完全改变。GridViewColumn的CellTemplate属性,用于定制GridViewColumn单元格数据的外观。
2023-08-21 17:56:24 1245 1
原创 WPF Button控件实现点击倒计时读秒
这里注意:IsEnabled是button的属性,在设置触发器时需要将此功能放在button style下,而不是上面的borderstyle。点击button按钮后,按钮背景颜色改变(变灰色),按钮实时显示60s倒计时,在此期间按钮不可再点,直到结束后按钮恢复原来的颜色(蓝色)。在XAML界面设计中,重写button样式,把按钮变成圆形or椭圆,这里使用border来完成。使用button按钮实现点击发送后倒计时60s,并且此期间button不可点击。2.改变button原样式实现实现该功能。
2023-08-18 16:48:38 547 3
原创 C#属性笔记
get访问器与方法体相似,它必须返回属性类型的值;而set访问器类似于返回类型为void的方法,它使用称为value的隐式参数,此参数的类型是属性的类型。属性:属性是一种用于访问对象或类的特性的成员,它可以表示字体的大小、窗体的标题和客户的名称等内容。提供灵活的机制来读取、编写或计算私有字段的值。方法:以一部分代码构成代码块的形式存在,用来实现特定的功能。id,name皆为student的属性;
2023-08-09 14:24:46 44 1
原创 MVVM框架,prism的使用
ViewModel:负责收集需要绑定的数据和命令,聚合Model对象,通过View类的DataContext属性绑定到View,同时可以处理一些UI逻辑,显示的数据对应着ViewModel中的Property,执行的命令对应着ViewModel中的command。提供数据和执行命令。View:Xmal界面,负责与用户交互,接收用户输入,把数据展现给客户。显示数据和发送命令。Model:系统中的对象,可包含属性和行为(就是一个类,是对现实事物的抽象)。
2023-08-09 14:02:31 389 1
原创 SqlSugar简单用法(MySQL, .NET Formework)
【代码】SqlSugar简单用法(MySQL, .NET Formework)
2023-08-07 17:30:16 904
原创 MySQL数据库基本命令
char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。-> (6, 1, '女装/女士精品', '呢绒外套', 399.90, 1200, '2020-11-10 00:00:00');-> (5, 1, '女装/女士精品', '百褶裙', 29.90, 500, '2020-11-10 00:00:00'),-> ("学习 MySQL", "菜鸟教程", NOW());数值、日期/时间和字符串(字符)类型。
2023-08-07 16:57:58 58
原创 博客摘录「 浅谈C#中的抽象类(abstract)和接口(interface)」2023年8月6日
5、接口只包含方法、属性、索引器、事件的签名,但不能定义字段和包含实现的方法,抽象类可以定义属性、字段、包含有实现的方法。抽象类,在面向对象过程中,所有的对象都是类描绘的,反过来,类里面的数据不足以把具体的对象描绘出来,这样的类就是抽象类。3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员)10、如果要设计小而简练的功能块,则使用接口,如果要设计大的功能单元,则使用抽象类。3、接口是一组行为规范,抽象类是一个不完全的类,着重于族的概念。4、接口不能被实例化;
2023-08-06 16:22:50 57
原创 博客摘录「 理解高内聚低耦合」2023年8月6日
例如:客户要求在界面上增加一个字段,如果你只要修改项目文档,那么你的开发构架就是最低强度的耦合,使用开发工具通过项目模型驱动数据库和各层次的代码,而不是直接修改那些代码;内聚指的是模块内部的功能,最强的就是功能不能拆分,也就是原子化。内聚:是对系统中元素职责的相关性和集中度的量度。如果元素有高度的相关职责,除了这些职责在没有其他的工作,那么该元素就有高内聚。耦合:指模块与模块之间的关系,最弱的耦合就是通过一个主控模快来协调n哥模块进行运作。耦合和内聚的的评判标准是强度,耦合越弱越好,内聚越强越好。
2023-08-06 12:50:47 63
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人