随笔分类 -  C#

摘要:在WPF中,与路径相关的类有一个清晰的层次结构和关系。我来详细解释它们之间的关系: 主要类的层次结构 Path: 这是一个UIElement,是用于绘制形状的高级控件。它有一个重要的属性Data,可以包含任何Geometry对象。Path本身负责渲染,包括填充(Fill)、描边(Stroke)等视觉 阅读全文
posted @ 2025-02-18 15:12 非法关键字 阅读(7) 评论(0) 推荐(0) 编辑
摘要:在 Windows Presentation Foundation (WPF) 的世界中,样式系统与类型元数据机制共同构建了一个强大而灵活的 UI 框架。本文将详细探讨默认样式键、控件类型元数据、显式样式和隐式样式的概念,以及它们如何协同工作。 默认样式键 (DefaultStyleKey) 默认样 阅读全文
posted @ 2025-02-18 10:23 非法关键字 阅读(10) 评论(0) 推荐(0) 编辑
摘要:在音乐文件管理中,正确的元数据(metadata)对于文件组织和音乐播放器的显示至关重要。本文将介绍如何使用C#和TagLib库来批量处理FLAC文件的元数据,这对于需要管理大量音乐文件的场景特别有用。 背景介绍 FLAC(Free Lossless Audio Codec)是一种无损音频编码格式, 阅读全文
posted @ 2025-01-22 17:32 非法关键字 阅读(23) 评论(0) 推荐(0) 编辑
摘要:协变(Covariance) 和 逆变(Contravariance) 是面向对象编程中关于类型系统的一种概念,主要用于处理泛型类型、接口或委托的继承和类型转换问题。它们决定了在继承结构中,泛型参数如何与类型或接口的继承关系保持一致或相反。 1. 协变(Covariance) 协变指的是,当你有一个 阅读全文
posted @ 2024-09-28 13:45 非法关键字 阅读(308) 评论(0) 推荐(0) 编辑
摘要:在 WPF 应用程序中,我们经常需要在 MVVM 模式下处理用户交互,同时传递both事件参数和当前的数据上下文。Microsoft.Xaml.Behaviors 提供了一种优雅的方式来实现这一目标。本笔记将详细介绍如何使用 EventTrigger、InvokeCommandAction 以及自定 阅读全文
posted @ 2024-06-25 10:42 非法关键字 阅读(2467) 评论(1) 推荐(3) 编辑
摘要:本文档解析了一段实现自定义ToggleButton动画与样式的代码,以及通过远程信号控制ToggleButton的示例。这段代码展示了如何使用WPF中的XAML和C#结合动画、样式和事件触发器来实现交互式控件,ToggleButton主要用来关联远程通信的状态,使用RemoteToggleButto 阅读全文
posted @ 2024-06-03 09:35 非法关键字 阅读(94) 评论(0) 推荐(0) 编辑
摘要:在WPF(Windows Presentation Foundation)中,控件的外观和行为是通过控件模板(Control Template)来定义的。TabControl和TabItem控件也不例外,它们的默认控件模板定义了这些控件的结构和视觉状态。在实际应用中,开发者可能会发现直接设置TabI 阅读全文
posted @ 2024-05-30 13:05 非法关键字 阅读(523) 评论(0) 推荐(0) 编辑
摘要:1. IEnumerable 与 List 的比较 在 .NET 中,IEnumerable 和 List 是两种常用的集合类型,它们有各自的适用场景: IEnumerable<T>: 优点:惰性求值,仅在迭代时计算,适用于大数据集或流式数据处理。 缺点:不能进行索引访问,没有直接的添加或移除元素的 阅读全文
posted @ 2024-05-29 14:21 非法关键字 阅读(21) 评论(0) 推荐(0) 编辑
摘要:在多线程编程中,线程同步是确保数据一致性和避免竞争条件的重要手段。本文将深入探讨 lock(object) 和 SemaphoreSlim 这两种常用的同步机制,详细分析它们的区别、适用场景以及如何在实际开发中选择合适的同步工具。 一、lock(object)(或 Monitor) 1. 单线程访问 阅读全文
posted @ 2024-05-29 10:47 非法关键字 阅读(886) 评论(0) 推荐(0) 编辑
摘要:在现代的WPF应用开发中,Prism框架提供了强大的模块化、依赖注入和MVVM支持,而Microsoft.Extensions.DependencyInjection提供了简洁而功能强大的依赖注入机制。另外很重要的一点是Microsoft.Extensions.*或者第三方的Nuget基本会提供Mi 阅读全文
posted @ 2024-05-29 09:38 非法关键字 阅读(643) 评论(4) 推荐(1) 编辑
摘要:在现代应用程序开发中,异步数据加载和管理是一个普遍的需求。本文介绍了一个自定义的异步数据加载工具——AsyncLoadHelper。通过详细的设计和实现介绍,以及结合实际应用示例,展示了AsyncLoadHelper在简化异步操作、提高代码可读性和维护性方面的优势。 在开发过程中,异步数据加载常常涉 阅读全文
posted @ 2024-05-28 14:29 非法关键字 阅读(55) 评论(0) 推荐(0) 编辑
摘要:在 WPF 中,Adorner 是一种特殊的装饰层,能够在 UI 元素之上绘制视觉效果。常用于提供视觉反馈或装饰功能,例如焦点指示、拖放效果等。 自定义 Adorne 类 要创建自定义 Adorner,需要继承 Adorner 类并重写 OnRender 方法。在 OnRender 方法中,您可以使 阅读全文
posted @ 2024-05-28 10:43 非法关键字 阅读(55) 评论(0) 推荐(0) 编辑
摘要:在WPF(Windows Presentation Foundation)中,PreviewMouseLeftButtonDown 和 MouseLeftButtonDown 是两个常用的鼠标事件,它们在事件路由策略和处理时机上有所不同。了解这两个事件的区别以及如何在实际应用中使用它们,可以帮助开发 阅读全文
posted @ 2024-05-28 10:31 非法关键字 阅读(469) 评论(0) 推荐(0) 编辑
摘要:在进行Binding的时候,如果能够明确到数据源属性的Path(Name),就可用Source、ElementName进行指定,但是有时候需要绑定的数据源可能没有明确的Path(Name),此时就需要利用Binding对象的RelativeSource属性来进行绑定源属性的指定,说白了,就是指定当前 阅读全文
posted @ 2022-11-01 16:22 非法关键字 阅读(1248) 评论(0) 推荐(3) 编辑
摘要:WPF类继承关系图 Object类:在.Net中所有类型的根类型 ​ DispatcherObject类:WPF中的大多数对象是从 DispatcherObject 派生的,这提供了用于处理并发和线程的基本构造。WPF 基于调度程序实现的消息系统。 ​ DependencyObject类:表示一个参 阅读全文
posted @ 2022-10-31 17:33 非法关键字 阅读(277) 评论(0) 推荐(1) 编辑
摘要:使用Lazy<>优雅的解决构造函数中的异步需求 前世今生 从netframework 4.0开始,C#开始支持延迟初始化,通过Lazy关键字,我们可以声明某个对象为仅仅当第一次使用的时候,再初始化,如果一直没有调用,那就不初始化,省去了一部分不必要的开销,提升了效率 线程安全性 默认情况下,该类的所 阅读全文
posted @ 2022-06-28 16:42 非法关键字 阅读(450) 评论(0) 推荐(1) 编辑
摘要:Expression与ExpressionTree LINQ 表达式(Expression) 可以将lambda表达式分配给Func或Action类型委托,以处理内存中的集合。.NET编译器在编译时将分配给Func或Action类型委托的lambda表达式转换为可执行代码。 LINQ引入了一种名为E 阅读全文
posted @ 2022-06-06 09:39 非法关键字 阅读(134) 评论(0) 推荐(0) 编辑
摘要:LINQ运算符 LINQ 过滤运算符 Where LINQ中的过滤运算符根据某些给定的标准过滤序列(集合)。 下表列出了LINQ中所有可用的过滤运算符。 筛选运算符 描述 Where 根据谓词函数从集合中返回值。 OfType 根据指定类型返回集合中的值。 然而,它取决于它们是否能够向指定类型转换。 阅读全文
posted @ 2022-06-02 14:31 非法关键字 阅读(110) 评论(0) 推荐(0) 编辑
摘要:要求Quartz版本高于3.2 安装Install-Package Quartz.Extensions.Hosting Quartz.Extensions.Hosting包中包含Quartz.Extensions.DependencyInjection, 详情请查询Quartz.Extensions 阅读全文
posted @ 2022-02-28 17:32 非法关键字 阅读(438) 评论(0) 推荐(0) 编辑
摘要:AspNetCore3.1.x以Windows Service运行 安装相应的扩展包 Nuget install Microsoft.Extensions.Hosting.WindowsServices 对Pramgram.cs的修改 public class Program { public st 阅读全文
posted @ 2021-05-20 10:05 非法关键字 阅读(165) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示