哈喽大家好!

我们是中韩Microsoft MVP夫妇 Vicky&James^^很高兴能加入博客园和大家分享我们的技术!

自2008年以来,我们一直深耕于WPF技术,积累了丰富的经验。这些年来,随着Xamarin、MAUI、Uno-Platform、AvaloniaUI和OpenSilver等跨平台技术的不断发展,我们也将在WPF中积累的技能成功地拓展到了各种跨平台项目中。

多年前我们发布的《用WPF重现英雄联盟客户端》项目获得了大家不少支持和关注,非常感谢大家!

最近,基于这个WPF版本,我们又开发出了跨平台的UnoPlattform和WinUI 3两个版本。这两个新版本继承了WPF的XAML丰富用户体验、C#的面向对象设计以及系统化的项目结构,同时也给我们带来了新的挑战和成长。

与此同时,我们也对原有的WPF版本源码进行了全面更新。因此大家可以通过我们的源码非常清晰地比较 WPF / Uno Platform / WinUI 3这三者在项目构建和呈现上的异同。















为了统一WPF/WinUI3/Uno仓库的项目架构,我们基于.NET Standard 2.0设计了一个可在所有平台上运行的框架,无需依赖第三方库。这个框架直接实现了项目分散化、模块化、视图注入、依赖注入、单例模式和MVVM等基于XAML的项目架构所需功能。采用这种方法,我们可以在不同版本(如WPF、Uno和WinUI3)之间转换时,大大减少不必要的转换工作。模项目。我们将复杂的控件实现为CustomControls,旨在为开发人员提供丰富的学习资料。

此外,项目还包含了WPF、Uno和WinUI3的各种技术实现案例,展示了如何在实际项目中充分利用这些技术和平台的强大功能。

项目中,从小型控件到复杂视图,所有组件均基于CustomControl构建。这种方法大大增强了项目的可移植性和灵活性,使得将整个项目迁移到其他基于XAML的平台变得更加便捷和高效。

为了帮助更多人了解和学习WPF以及相关的跨平台技术,我们已经将这三个项目开源。大家可以在我们的GitHub账号中查看和下载:

别忘了点击Star和Fork,也欢迎分享给身边的小伙伴!你们的支持是我们持续开源分享的动力!️

英雄联盟客户端 (WPF)

英雄联盟客户端 (Uno-Platform)

英雄联盟客户端 (WinUI 3)

更详细的项目介绍大家可以直接在GitHub项目中查看和学习,如有任何相关疑问,也欢迎通过Discussions参与讨论。

除了源码外,我们还在积极准备相关的系统教学视频,这些视频也将很快和大家见面^^

开源项目更新|WPF/Uno Platform/WinUI 3三个版本的《英雄联盟客户端》的更多相关文章

  1. .NET 5 尝鲜 - 开源项目TerminalMACS WPF管理端支持.NET 5

    .NET 5 尝鲜 - 开源项目TerminalMACS WPF管理端支持.NET 5 一个使用 Prism 作为模块化框架.基于多个开源控件库作为UI控件选择.集成开源 UI 界面设计的 .NET ...

  2. Android开源项目分包方式学习(eoe、oschina、github)

    总感觉Android中关于分包的文章很少,或者几乎可以说没有.但是合理地分包,又可以使整个项目模块化,减少包与包之间的依赖,让整个项目的框架更加清晰,更利于后续功能的拓展. 因为没有相关的文章,所以这 ...

  3. Android 上传开源项目到 jcenter 实战踩坑之路

    本文微信公众号「AndroidTraveler」首发. 背景 其实 Android 上传开源项目到 jcenter 并不是一件新鲜事,网上也有很多文章. 包括我本人在将开源项目上传到 jcenter ...

  4. Android开发:为什么我们从来不去感谢开源项目维护者?

    今天我想谈一谈,为什么我们很少去感谢开源项目维护者: 一.这样的项目我也可以做啊 “蛤?这项目对我来说也太简单了吧.” “我一周之内就能做一个更好的版本出来.” 确实,很多人都可以在 Hackatho ...

  5. 这些 .Net and Core 相关的开源项目,你都知道吗?(持续更新中...)

    最近更新时间2017-12-28 序列化 Json.NET http://json.codeplex.com/Json.Net是一个读写Json效率比较高的.Net框架.Json.Net 使得在.Ne ...

  6. .NET Core/.NET5/.NET6 开源项目汇总11:WPF组件库1

    系列目录     [已更新最新开发文章,点击查看详细] WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Frame ...

  7. .NET Core/.NET5/.NET6 开源项目汇总12:WPF组件库2

    系列目录     [已更新最新开发文章,点击查看详细] WPF(Windows Presentation Foundation)是微软推出的基于Windows 的用户界面框架,属于.NET Frame ...

  8. 能快速构建和定制网络拓扑图的WPF开源项目-NodeNetwork

    大家好,我是沙漠尽头的狼,今天介绍一个WPF开源项目-NodeNetwork,它可以帮助我们快速构建和定制网络拓扑图. 一.前言 在现代软件开发中,数据可视化和可交互性越来越受到关注.为了实现这一点, ...

  9. 【原】Android热更新开源项目Tinker源码解析系列之三:so热更新

    本系列将从以下三个方面对Tinker进行源码解析: Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Android热更新开源项目Tinker源码解析系列之二:资源文件热更新 A ...

  10. 【原】Android热更新开源项目Tinker源码解析系列之一:Dex热更新

    [原]Android热更新开源项目Tinker源码解析系列之一:Dex热更新 Tinker是微信的第一个开源项目,主要用于安卓应用bug的热修复和功能的迭代. Tinker github地址:http ...

随机推荐

  1. Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was 14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"解决yum下载报错

    报错信息 │ (SSH client, X server and network tools) │ │ │ │ ⮞ SSH session to root@192.168.117.166 │ │ • ...

  2. 计算机领域:学术写作中的conducive的含义表示

    "Conducive" 的意思是"有助于"或"有益于".在学术和正式的写作中,"conducive" 常用于描述某种情况 ...

  3. 如何使用git通过ssh协议拉取gitee上的项目代码——如何正确的免密使用git

    如何在gitee网站上生成/添加SSH公钥见教程: 生成/添加SSH公钥 测试公私秘钥是否成功: ssh -T git@gitee.com ============================== ...

  4. SMU Summer 2023 Contest Round 9(2019 山东省大学生程序设计竞赛)

    2019 山东省大学生程序设计竞赛 A. Calandar 纯模拟吧(感觉我做麻烦了(?), 就是如果问的是未来的日期,就用相隔天数取模后加上这天的星期, 如果问的是曾经的,就用这天的星期减去相隔天数 ...

  5. ZPL Viewer工具网站

    新上线的ZPL Viewer工具网站 大家好! 在工作中,我们经常需要设计和预览ZPL(Zebra Programming Language)文件.以前,我一直使用ZPL Design这类工具,但后来 ...

  6. Structures, unions, enumerations, and bitfields in ARM C and C++

    Structures, unions, enumerations, and bitfields in ARM C and C++ Non-Confidential   ARM DUI0375E ARM ...

  7. 阿里云 ACK Pod重启:pod was OOM killed

    原因为:limits和requests的值设定为一样的了, pod request达到了limit限制,kubelet会统计到request+缓存就超限,然后触发自动重启 resources: lim ...

  8. 5.7前端跨域CSRF和SSRF

    一.CSRF(跨站请求伪造) 1.get类型(pikaqu靶场环境) 前提:抓包获取请求地址,构造伪造请求站点,并保持用户登录状态点击伪造站点 此时在其他主机,构造网站信息index.html文件,并 ...

  9. 《Effective TypeScript》条款21 - 类型扩展

    本文主要通过一些实际的代码示例,来帮助大家理解什么是类型扩展,本文主要内容如下: 什么是类型扩展 代码示例 总结 什么是类型扩展? TypeScript 需要从你指定的单一值中决定一组可能的值,这个过 ...

  10. 从数据洞察到智能决策:合合信息&infiniflow RAG技术的实战案例分享

    从数据洞察到智能决策:合合信息&infiniflow RAG技术的实战案例分享 标题取自 LLamaIndex,这个内容最早提出于今年 2 月份 LlamaIndex 官方博客.从 22 年 ...