这是使用 Uno 平台重现的高质量英雄联盟客户端项目。该项目展示了 Uno 的各种实现技术,并演示了大规模项目分布式设计的广泛技术方法。
英雄联盟客户端 (WPF)
英雄联盟客户端 (Uno-Platform)
英雄联盟客户端 (WinUI 3)
如果您是 WPF 开发人员,您将看到基于 XAML 的 WPF 技术如何自然地过渡到跨平台开发。
我们自 2008 年以来一直在研究和积累 WPF 技术经验。多年来,Xamarin、MAUI、Uno-Platform、AvaloniaUI 和 OpenSilver 等各种跨平台技术不断发展,使我们能够将在 WPF 中积累的技能扩展到 Uno-Platform。
我们发布的这个英雄联盟 Uno-Platform 版本是基于 WPF 的 XAML 丰富用户体验、C# 的面向对象设计以及系统化的项目结构构建的。这是继我们之前的 WPF 版英雄联盟项目之后的新挑战。
本项目展示了如何在 Uno-Platform 上实现大规模项目。通过将复杂的控件实现为 CustomControls,我们旨在为开发人员提供丰富的学习材料。此外,它还包括 Uno 的各种技术实现案例,展示了如何在实际项目中利用 Uno 平台的强大功能。
特别是,该项目为大规模应用程序的分布式设计提供了广泛的方法。它通过模块化结构、高效的状态管理和可扩展的架构演示了如何构建和管理复杂的应用程序。
Jamesnet.Core 框架库基于 .NET Standard 2.0 设计,可在 WPF 和 Uno 中同样运行。该库在 WPF 中作为 Jamesnet.Window 提供,在 Uno-Platform 中作为 Jamesnet.Uno 提供。
在本项目中,我们直接引用了 Jamesnet.Core 和 Jamesnet.Uno 的实际源代码,使您能够学习基于 XAML 的框架的设计方法。
我们希望这个项目不仅能在 Uno-Platform 和 WPF 中广泛使用,还能在 MAUI、AvaloniaUI、OpenSilver 和 WinUI3 等各种基于 XAML 的平台中使用,为跨平台开发开辟新的视野。
本项目支持以下平台:
- 桌面:在 Windows、macOS 和 Linux 上作为本地应用程序运行
- Blazor WebAssembly:使用 WebAssembly 技术在网络浏览器中运行(目前正在开发中)
注意:该应用程序主要为桌面环境开发。Blazor 支持尚未完成,将在未来更新中提供。更多详情请参阅下方的路线图。
当您克隆此存储库时,它默认设置为 .NET 8.0 桌面环境。您可以在 Windows、macOS 或 Linux 上使用 Visual Studio 2022 或 JetBrains Rider 立即构建和运行它。
虽然此应用程序基于 Uno-Platform,但它主要为桌面环境设计。您可以从单一源代码创建一个在 Windows、macOS 和 Linux 上运行的单一程序。
项目文件配置如下。您可以根据需要调整 .NET 版本。
<Project Sdk="Uno.Sdk">
<PropertyGroup>
<TargetFrameworks>net8.0-desktop</TargetFrameworks>
</PropertyGroup>
</Project>
'net8.0-desktop' 基于 Skia 库,支持 Windows、macOS 和 Linux。
注意:Blazor 支持目前正在开发中。Blazor 支持和网络托管功能将在未来更新中添加。
<Project Sdk="Uno.Sdk">
<PropertyGroup>
<TargetFrameworks>net8.0-browserwasm;</TargetFrameworks>
</PropertyGroup>
</Project>
我们欢迎对 Blazor 支持感兴趣的人贡献!
欢迎您的贡献!请随时提交拉取请求。
本项目采用 MIT 许可证。详情请参阅 LICENSE 文件。
以下是未来需要开发的项目。任何人都可以参与这些任务并成为贡献者。我们期待您的意见和参与!
- 将 GradientBrush 应用于 Foreground(参考:https://platform.uno/docs/articles/features/shapes-and-brushes.html)
- 更改 TextBox CaretBrush 颜色
- 改进 TextBox CustomControl
- 增强 ScrollViewer CustomControl
- 解决视图依赖注入过程中更改主窗口位置时视图坐标更新问题
- 改进 DependencyProperty 在 OnApplyTemplate 之前的 Callback 处理时机
- 添加多语言支持
- 实现多主题支持
- 改善 Blazor 支持的兼容性
- 整合 WPF/Uno、AvaloniaUI、OpenSilver 等跨平台框架(利用 Jamesnet.Core)