圣者
精华
|
战斗力 鹅
|
回帖 0
注册时间 2010-5-7
|
发表于 2026-6-1 16:33
来自手机
|
显示全部楼层
将 Windows 平台上的知名 .NET 开源漫画/图片浏览器 NeeView 迁移或跨端到 macOS,是一个工程量极大的重构项目。
因为 NeeView 是一个极其依赖 Windows 特性的程序:它的 UI 100% 采用 WPF(Windows Presentation Foundation) 编写,底层图片解码依赖 Windows 的 WIC (Windows Imaging Component),动画和渲染高度依赖 DirectX 生态。
如果你想保持 .NET 的核心业务逻辑,将其真正编译为 macOS 原生运行的程序,Avalonia UI 是目前唯一的最佳选择。它是一个开源的跨平台 .NET UI 框架,API 深度模仿 WPF。
怎么整:
架构拆分(物理分离):
保持 NeeView 的 Core 逻辑(解压 Zip/7z、书签管理、脚本系统、Playlist 等纯 C# 逻辑)。
将原来的 NeeView(WPF 项目)降级为一个单独的 Windows Shell,然后新建一个 NeeView.Avalonia 项目作为 macOS/Linux 的 Shell。
XAML 迁移:
Avalonia 的 XAML 和 WPF 非常像,但并不完全一样。你需要把 WPF 的样式、数据绑定、ControlTemplate 转换为 Avalonia 语法。
特别是 NeeView 标志性的“长按放大镜”、“鼠标手势 (Mouse Gesture)”和自定义工具栏,需要用 Avalonia 的 Pointer 事件重新实现。
图像后端替换(最核心的坑):
NeeView 原版大量使用 System.Windows.Media.Imaging(WIC)。
在 Mac 下,必须切换为跨平台的图像库。Avalonia 自带的 Avalonia.Media.Imaging.Bitmap 或者引入 ImageSharp / SkiaSharp 来做底层的图片解码与像素处理。
视频与 PDF 渲染:
原版在 Win 下调用的是 MediaElement 或 DirectShow/MediaFoundation。在 Mac 下,需要切换到基于 LibVLCSharp 或 FFmpeg.AutoGen 的跨平台视频播放方案。
看了看 好复杂
—— 来自 HONOR BKQ-AN10, Android 16, 鹅球 v3.5.99-alpha |
|