- 博客(24)
- 收藏
- 关注
原创 英雄联盟客户端项目:从跨平台Uno Platform到Win UI3的转换只需要30分钟
如何将基于WPF和Uno Platform开发的移植到WinUI 3平台,并分享相关代码仓库。此外,我们还将重点讨论为什么能够在短短30分钟内完成从Uno Platform到WinUI 3的转换,以及具体的转换过程。
2024-11-12 22:00:56 1106
原创 开源项目更新|WPF/Uno Platform/WinUI 3三个版本《英雄联盟客户端》
为了统一WPF/WinUI3/Uno仓库的项目架构,我们基于.NET Standard 2.0设计了一个可在所有平台上运行的框架,无需依赖第三方库。这个框架直接实现了项目分散化、模块化、视图注入、依赖注入、单例模式和MVVM等基于XAML的项目架构所需功能。采用这种方法,我们可以在不同版本(如WPF、Uno和WinUI3)之间转换时,大大减少不必要的转换工作。模项目。我们将复杂的控件实现为CustomControls,旨在为开发人员提供丰富的学习资料。
2024-10-10 17:08:59 451
原创 WPF教学|深度解析基于ResourceDictionary的WPF动态主题框架架构-DynamicTheme
在这个全面的WPF教程中,我们将深入探讨实时主题更改的高级项目设计技术。StaticResource和DynamicResource的深度分析内部工作原理、特性、使用方法及性能差异资源管理优化策略样式资源的加载时机错误处理策略代码后台动态创建和管理资源的技术WPF核心结构及关系Application和Current的关系Resources与MergedDictionaries的区别ResourceDictionary组及其高效管理方法可扩展的ResourceDictionary管理。
2024-09-16 11:15:23 407
原创 用WPF从0构建一个iOS风格自定义TreeView控件|含全过程视频讲解
在WPF中,TreeView/TreeViewItem与其他普通控件一样,默认提供了模板。然而,TreeView的表现方式多种多样,且其自由的层次结构布局没有限制,这使得默认提供的模板使用起来存在一定的局限性。因此,非常有必要详细了解和使用这个继承自ItemsControl的TreeView控件的机制和特性。
2024-08-21 13:47:13 923
原创 WPF教学视频详解|WPF NavigationBar 如此丝滑的动画竟然这么简单?!GitHub源代码 |编程原视频已上传
WPF 应用程序传统上通过菜单构成将多个界面连接并集成到一个程序中。因此,菜单或称为导航的技术是 WPF 的核心实现之一。由于这与项目的架构(设计)直接相关,如果更仔细地实现这一技术,也可以预期项目的质量会得到显著提升。此控件虽然在移动设备上以特殊设计和动画为特点,但如果在 WPF 中使用 ListBox 和动画技术,也可以实现结构优良且优雅的效果。此外,像 AvaloniaUI、Uno、OpenSilver、MAUI 等跨平台工具也可以用类似方式实现,因此希望这一项目能够在各种平台上得到研究和应用。
2024-05-22 19:32:43 852 1
原创 WPF教学视频详解|复现WPF版《英雄联盟》风格的PLAY 按键 (2) 视频内容纠正
控件名称:RiotPlayButton作者:Vicky&James(【小李趣味多】https://bit.ly/49L6dXu)
2024-05-21 23:46:56 796 1
原创 如何用WPF复现一个《英雄联盟》风格的PLAY 按键|教学视频内容讲解 (1)
本文详细介绍并分析了使用纯 WPF 技术开发受《英雄联盟》游戏启发的 PLAY 按钮的过程。本文强调了利用 WPF 功能创建各种用户界面组件的过程,并为开源开发提供了新的视角。同时,探索了动画和触发器等高级 WPF 功能,以提升用户交互体验。
2024-05-20 23:19:47 1040 3
原创 认识和解析 WPF 基本控件 DatePicker 的问题,并通过 CustomControl 实现新的控件:SmartDate
分析和理解 DatePicker 的结构及模板中各内部元素的交互,是提升 WPF 设计和分析能力的有益案例。这不仅适用于 DatePicker,还适用于所有 WPF 控件。然而,DatePicker 的设计是在很多年前,与现在更加推荐的编程方式有所不同,因此在这样的环境下,根据项目的具体需求,通过CustomControl重新构建一个DatePicker控件可能是更加有效的方式。
2024-05-16 21:31:31 1096
原创 WPF教学|自定义日期选择控件SmartDate编程全过程 |全干货高级技巧 |进阶Next Level!|GitHub源码公开
在处理像 DatePicker 这样要求复杂功能并需要详细定制的控件时,使用基本控件时往往感受到一定的限制。上一期的[Riot Slider](https://bit.ly/3xUkIv2)教程中的 Slider 控件功能单一,模板结构简单,因此剖析该控件的内部结构并进行自定义是一个非常有价值的过程。但相比之下,DatePicker 的内部结构类似于一个小型应用程序,分析和提取其基本模板结构就成为一项非常艰巨的任务。这无疑也为 WPF 的研究和分析提供了绝佳的训练机会。
2024-05-07 13:48:50 964
原创 WPF教学| 英雄联盟风格RiotSlider编程全过程 |深度解析Slider Control |WPF进阶高质量案例教学(内附源码)
WPF中的基本控件,例如:Button、CheckBox、ToggleButton等,在结构上是比较简单的,通过XAML即可充分实现,无需Code behind。相反,TextBox、ComboBox、Slider等控件不仅需要XAML,还需要通过C#代码进行复杂处理。如果你深入了解这些控件的基本CustomControl结构,那么在进行新的自定义时将会非常有用。特别是这次,我们通过深入了解WPF的基本Slider控件,来深入理解WPF控件的内部机制。虽然没有必要逐一研究所有控件的内部结构,但是WPF的源
2024-02-02 12:05:44 160
原创 用WPF编写《英雄联盟》客户端操作界面 - 1.Play Button
另一种方法是保持底部Margin为0px。我们可以简单的将其理解为X/Y坐标轴,我们将这个图形的长设置为118,宽设置为28:M 0,0: 这是一个"MoveTo"命令,它将绘制点移动到坐标 (0, 0) 的位置,即起始点。通过分析器(我们独立开发的开源项目,目前暂未公布)我们可以看到这个PLAY按钮继承了WPFToggleButton的属性,左侧是一个英雄联盟游戏的Logo,右侧是一个由不同设计的Border、图片和文本组成的多元素图形,此外还添加了交互式mouseover和checked触发效果。
2023-11-29 21:10:42 378 1
原创 WPF教学|WPF也能轻松搞定晴天黑夜切换按钮!GitHub精简源代码已上传|NuGet下载直接使用
你可以通过NuGet包来下载这个控件,并且可以通过GitHub仓库来执行包含原始源代码和使用方法的演示项目。今天分享的是wpf版本的晴天黑夜切换按钮使用的方法和具体编程的部分。
2023-11-04 19:17:12 210 1
原创 WPF|浅谈ControlTemplate和 DataTemplate
在上面的示例中,我们设置了ListBox的每个项目都以具有Name和Age属性的Employee对象的方式进行表示的DataTemplate。事实上,要完全理解这些概念,需要具备足够的经验和对WPF的高水平理解。因此,ControlTemplate用于自定义控件的外观和行为,而DataTemplate通常用于通过数据绑定来显示数据的控件中。因此,ControlTemplate和DataTemplate分别用于控制控件和数据的可视表示,这两种模板在构建WPF用户界面时起着关键作用。
2023-10-18 18:46:55 333 1
原创 Prism的AutoWireViewModelChanged:高效利用ViewModel创建和联动事件
讨论Prism中一个非常引人注目的功能——AutoWireViewModelChanged方法。这个方法通过ViewModelLocationProvider来提供。令人惊奇的是,根据Prism的配置,在视图(View)创建后,这个方法会自动通过依赖注入(Injection)来创建对应的ViewModel,并将结果通过一个回调方法返回
2023-09-19 10:26:41 262
原创 在WPF中使用HEX代码来表现颜色
在WPF中,背景色是由父对象的类型提供的,通常使用Background或Fill属性。大多数UI使用Background属性,但与几何图形(Geometry)有关的UI(如Ellipse、Rectangle、Path等)则使用Fill属性。例如,黑色(#000000)和白色(#FFFFFF)是在WPF中最常使用的色彩代码。此外,通过背景颜色属性了解父对象的特性,并增强这方面的能力也是很重要的。通过这篇文章,大家将了解如何在WPF中处理颜色,并提高大家对基础色彩代码和背景色使用的理解。
2023-09-11 18:05:51 1594
原创 WPF MVVM模式与DI:高度兼容的结构
使用DI可以提高代码的可读性和可重用性,也可以提高维护性和可测试性。引入这种模式后,每个类的职责和角色将更加明确,从而提高代码的可读性,并增加整个应用程序的灵活性。今天,我们将讨论如何在WPF中同时使用MVVM模式和依赖注入(Dependency Injection,DI)来构建强大而灵活的应用程序。
2023-09-10 15:12:59 321 1
原创 利用CommunityToolkit.Mvvm实现Command
在本篇文章中,我们将学习如何使用CommunityToolkit.Mvvm库来实现Command
2023-09-02 15:52:29 1077
原创 WPF Converter | IValueConverter + MarkupExtension = 更简单整洁的代码
一个关于WPF Converter的小Tips,让你的代码更简洁高级!
2023-08-29 20:15:09 190 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人