登录
/
注册
首页
论坛
其它
首页
科技
业界
安全
程序
广播
Follow
关于
导读
排行榜
资讯
发帖说明
登录
/
注册
账号
自动登录
找回密码
密码
登录
立即注册
搜索
搜索
关闭
CSDN热搜
程序园
精品问答
技术交流
资源下载
本版
帖子
用户
软件
问答
教程
代码
写记录
写博客
小组
VIP申请
VIP网盘
网盘
联系我们
发帖说明
道具
勋章
任务
淘帖
动态
分享
留言板
导读
设置
我的收藏
退出
腾讯QQ
微信登录
返回列表
首页
›
业界区
›
业界
›
重塑WPF辉煌?基于DirectX 12的现代.NET UI框架Jalium ...
重塑WPF辉煌?基于DirectX 12的现代.NET UI框架Jalium
[ 复制链接 ]
嗳歉楞
2 小时前
猛犸象科技工作室:
网站开发,备案域名,渗透,服务器出租,DDOS/CC攻击,TG加粉引流
你是否曾经幻想过,如果WPF诞生在今天,它的底层渲染会是什么样子?是依然依赖老旧的MilCore,还是拥抱DirectX 12的极致性能?今天要介绍的Jalium,正是这样一个将WPF的设计哲学与现代图形技术融合的实验性项目——它用DirectX 12重新实现了WPF的核心概念,带来了一个完全自研的、面向.NET 10的Windows桌面UI框架。
它是什么?
Jalium.UI 不是一个对WPF的简单封装或“皮肤美化”,而是一个从零开始构建的完整UI系统。它包含了WPF开发者所熟悉的一切:依赖属性、可视化树、布局引擎、输入路由、动画系统、主题管理……但底层却换成了DirectX 12的GPU加速渲染管线。这意味着,你可以用WPF风格的代码,享受到现代图形API带来的流畅体验和视觉效果。
架构设计:八层模块,各司其职
Jalium采用分层架构,由八个核心模块组成,每个模块都承担着明确的职责:
Jalium.UI.Core:这是整个框架的基石。它实现了完整的依赖属性系统,支持属性值优先级(动画 > 本地值 > 绑定 >
默认值)。布局引擎则沿用了WPF经典的Measure-Arrange两阶段模型,并通过LayoutManager进行批量脏元素处理,确保布局性能。
DependencyObject、Visual、UIElement、FrameworkElement……这条继承链对WPF开发者来说再熟悉不过。
Jalium.UI.Controls:提供了87个以上的控件类,覆盖了桌面应用开发的主流需求。从基础的Button、TextBox、CheckBox,到复杂的DataGrid、TreeView、NavigationView,甚至还有特色控件如支持9种画笔类型的InkCanvas、ColorPicker、MediaElement。布局容器方面,Grid、StackPanel、DockPanel、WrapPanel、Canvas、UniformGrid一应俱全,还提供了VirtualizingStackPanel用于大数据列表的虚拟化渲染。
Jalium.UI.Interop与原生层(C++):这两部分共同构成了渲染管线的底层。通过P/Invoke调用C++编写的DirectX
12后端,实现真正的GPU加速2D渲染。文本渲染集成了DirectWrite,并支持字形缓存。值得一提的是,架构上预留了多后端扩展能力,枚举中已定义D3D11、Vulkan、OpenGL、Metal和Software等选项,为未来跨平台或回退方案埋下伏笔。
标记语言:JALXAML,熟悉的配方
如果你熟悉XAML,那么Jalium的标记语言JALXAML会让你感到亲切。它几乎复刻了XAML的语法结构,支持:
x:Class代码隐藏
x:Name命名元素
数据绑定表达式
事件绑定
资源字典和样式系统
编译流程则提供了两种路径:
编译时处理:通过Source Generator在编译期解析.jalxaml文件,并生成InitializeComponent()方法,避免了运行时的反射开销。
运行时加载:通过XamlReader.LoadComponent()动态解析XAML,适用于动态界面场景。
此外,你还可以将JALXAML预编译为二进制包(.juib),在需要极致性能的场景下跳过XML解析,直接加载渲染。
视觉效果:GPU加持的现代UI
视觉效果是Jalium的一大亮点。由于底层基于DirectX 12,它可以轻松实现各种现代特效:
窗口背景效果:原生支持Windows 11的Mica、Acrylic、MicaAlt,通过DWM合成实现,让应用与系统融为一体。
元素级效果:支持DropShadow投影、高斯模糊,甚至允许你编写自定义的HLSL像素着色器,实现无限可能的视觉效果。
画刷系统:提供SolidColorBrush、LinearGradientBrush、RadialGradientBrush和ImageBrush,满足各种填充需求。
动画系统:支持DoubleAnimation数值插值、关键帧动画、路径动画以及多种缓动函数,通过Storyboard进行编排,让界面生动起来。
主题与样式:灵活定制,无缝切换
Jalium拥有完整的样式系统,包括Style、ControlTemplate、PropertyTrigger、EventTrigger和MultiTrigger。内置主题通过JALXAML文件定义,覆盖了所有控件的默认外观。最贴心的是,它支持浅色和深色主题的切换,并且颜色系统与Windows系统主题深度集成,可以随系统主题自动变化。
总结:一次认真的现代重写
Jalium.UI 不是一个小打小闹的玩具项目,而是一次认真的尝试:用现代技术栈重新实现WPF的设计理念。它保留了WPF开发者熟悉的编程模型,同时用DirectX 12替换了老旧的MilCore渲染层,用Source Generator替代了运行时反射,用.NET 10的最新特性提升了开发体验。
87个以上的控件、完整的动画和效果系统、灵活的标记语言……这些足以证明其野心。虽然目前还是一个年轻的项目,但它已经展现出了巨大的潜力。对于那些渴望在.NET桌面应用中实现现代视觉效果,又不想放弃WPF开发效率的开发者来说,Jalium无疑是一个值得关注的方向。
未来,它会成为WPF的继任者吗?我们拭目以待。
今天是 Jalium.UI 的重要里程碑!Jalium.UI 已于 2026/3/1 开源发布!
现在就来一起见证并参与这段旅程:
开源地址:https://github.com/VeryJokerJal/Jalium.UI
QQ 交流群:1079778999
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
重塑
WPF
辉煌
基于
DirectX
相关帖子
一款基于 .NET Avalonia 开源、功能强大、跨平台的班级大屏课表展示系统
基于 LangGraph 的多 Agent 协作系统实战:从架构设计到并行调度
重塑行业标准!RF“碳玩家大联盟”推动技术平权
WPF新手村教程(三)—— 路由事件
最小二乘问题详解11:基于李代数的PnP优化
[大模型实战 07] 基于 LlamaIndex ReAct 框架手搓全自动博客监控 Agent
基于 Lexical 实现变量输入编辑器
基于重复控制方法的逆变器的仿真学习笔记
网络自动化学习-基于PySNMP的批量巡检(练习版)
基于WebSocket的IM即时通信方案在H5游戏场景下的技术实践
回复
使用道具
举报
提升卡
置顶卡
沉默卡
喧嚣卡
变色卡
千斤顶
照妖镜
相关推荐
业界
一款基于 .NET Avalonia 开源、功能强大、跨平台的班级大屏课表展示系统
1
179
茹静曼
2026-02-27
业界
基于 LangGraph 的多 Agent 协作系统实战:从架构设计到并行调度
2
423
章娅萝
2026-02-28
安全
重塑行业标准!RF“碳玩家大联盟”推动技术平权
0
480
嗳歉楞
2026-02-28
业界
WPF新手村教程(三)—— 路由事件
2
71
归筠溪
2026-02-28
业界
最小二乘问题详解11:基于李代数的PnP优化
1
48
梭净挟
2026-02-28
安全
[大模型实战 07] 基于 LlamaIndex ReAct 框架手搓全自动博客监控 Agent
0
937
济曝喊
2026-02-28
安全
基于 Lexical 实现变量输入编辑器
1
375
湛恶
2026-03-01
业界
基于重复控制方法的逆变器的仿真学习笔记
0
471
昝梓菱
2026-03-02
安全
网络自动化学习-基于PySNMP的批量巡检(练习版)
0
22
筒濂
2026-03-02
安全
基于WebSocket的IM即时通信方案在H5游戏场景下的技术实践
0
710
羊舌正清
2026-03-02
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
回复
本版积分规则
回帖并转播
回帖后跳转到最后一页
浏览过的版块
安全
签约作者
程序园优秀签约作者
发帖
嗳歉楞
2 小时前
关注
0
粉丝关注
20
主题发布
板块介绍填写区域,请于后台编辑
财富榜{圆}
3934307807
991125
anyue1937
9994892
kk14977
6845359
4
xiangqian
638210
5
宋子
9888
6
韶又彤
9910
7
闰咄阅
9993
8
刎唇
9995
9
蓬森莉
9872
10
遗憩
10006
查看更多
今日好文热榜
284
每周读书与学习->Jmeter中如何使用Bean She
410
前端新范式:用 AI 提效开发,用 E2E 保证
718
前端新范式:用 AI 提效开发,用 E2E 保证
212
“AI+消费”:第四届北京人工智能产业创新
312
NVIDIA GPU 集合通信库 NCCL 初始化流程源
275
【赵渝强老师】PostgreSQL中表的碎片
708
KWDB跨模查询+Apache Superset:智能电表场
720
重塑WPF辉煌?基于DirectX 12的现代.NET UI
679
springboot~jpa优雅的软删除能力
59
IntelliJ IDEA的统治即将终结?我已经3个月
58
Windows系统安装OpenClaw并使用Qwen千问接
228
IPv6地址获取方式与CH394Q获取全球唯一地址
448
自感翻译专章——一个核心概念的跨文化旅行
253
浅谈随机化
231
C# .NET 周刊|2026年1月4期
301
M3U8 播放调试不用愁!这款纯网页工具帮你
234
S001 【模板】从前缀函数到KMP应用 字符串
710
OpenClaw安装部署教程
974
OpenClaw 安装配置指南:从零开始在 Telegr
752
LeetCode 88 合并两个有序数组:python3 题