大家好呀,我是搬砖工.
我们这里今天下雨了,突然以下就变凉了.大家注意加衣服呀.
欢迎大家观今天的WPF最新资讯
先看个演示动图,感受下Linux下的WPF震撼吧

WPF从诞生时,是个优美的框架.界面美观可定制,功能强大可扩展.宇宙目前最强IDE VS也是用它来开发的.一直以来.各路神仙都想将Windows独有的此项绝技,移植到其他平台
目前大体上有两种方式
- 语法相近,但不完全相似.方便你快速入手.又可以夹带自己理念.的佼佼者Uno,Avalonia.还有后起之秀Jalium.UI
- 完全兼容,几乎不需要修改源码,强大兼容.目前所知就是XPF(同样由AvaloniaUI团队开发). 第二种对老项目来说,肯定是最好的.但是很不幸.XPF要价不菲.商业产品.
感谢AI时代吧,它的到来.把以前很多不可能变成了可能.今天的主角登场
https://github.com/wieslawsoltes/LibreWPF
LibreWPF 是什么
LibreWPF 试图打破这一限制。它 fork 自上游 dotnet/wpf,在保持 WPF 托管代码完全不动的前提下,把"仅限 Windows"的渲染层逐层替换为基于 ProGPU / WebGPU / Silk.NET 的跨平台实现。最关键的一点是:用户只需修改一行 SDK 引用,无需改动任何 XAML 或 C# 源码,即可让现有 WPF 应用获得跨平台运行能力。
关键组件
| WebGpu | W3C 标准化的 GPU API | 屏蔽 D3D12 / Vulkan / Metal 差异 |
| ProGpu | 基于 WebGPU 的渲染引擎 | 场景图、矢量、文本、命中测试、效果、WebShader |
| Silk.NET | .NET 跨平台原生绑定 | 统一封装 X11 / Cocoa / Win32 / Wayland / OpenGL / Vulkan |
替换关键
LibreWPF 与原生 WPF 在架构上的对照关系。核心思路是"上层复用、下层替换":WPF 的托管代码层(应用、控件、XAML、绑定、主题、布局)原封不动,只把 Windows-only 的渲染层逐层替换。
例子
我们这次使用VirtualizingWrapPanel来做演示
选他有几个原因
1.VWP足够稳定.经受考验 2.虚拟化是个很好的检验渲染的例子.
通过足够复杂的Lib看看LibreWPF具体有几分成色.
安装Ubuntu
这一步省略了.直接下载最新的26.04版本ISO文件通过VM Ware Pro安装即可.
这里截图展示下我们配置

安装dotnet SDK
参考链接:os-linux-ubuntu-2604
Bash中输入以下指令:
sudo apt-get update && \\
sudo apt-get install -y dotnet-sdk-10.0
等几分钟安装完成.之后查看下安装结果:
dotnet –list

查看下当前安装的sdk.确定为10.0版本即可
Clone 项目
git clone https://github.com/sbaeumlisberger/VirtualizingWrapPanel
安装gcc
需要gcc编译一部分so文件夹.所以,直接安装下
sudo apt-get install -y gcc
修改项目文件
真的只有一行.将Sdk从Microsoft.NET.Sdk更改为LibreWPF.Sdk/0.1.0-preview.45 
编译项目
在Sample文件夹下运行:
dotnet run -p:EnableWindowsTargeting=true
成果

滑动.下拉,右键菜单都没问题.因为我的4G内存.也没啥显卡.和Ubuntu系统应用差不多.
发现一点问题:
Combox的下拉位置不太对.可能与我缩放分辨率有关.准备提个Bug给作者.
今天分享实战内容到此结束.谢谢大家观看.
期待朋友们的点赞关注和留言互动.



