如何在 WPF/XAML 项目中使用 Rive 动画?

How can I use Rive animations in a WPF / XAML project?

我有一个 *.rive 文件,我想在我的 WPF 应用程序中像加载微调器一样使用它。

有任何方法可以使用图像、媒体元素等在 WPF 中使用 rive 文件

需要转成gif吗?

简答:你不能

  • Rive 不仅仅是一个动画工具,而是一个动画框架,需要针对不同类型的宿主专门编写 runtime
  • Rive's documentation says they only have first-party support 用于:
    • Web(和第一方 React 包装器)。
    • iOS、Android、Flutter、Tizen
    • React Native
    • “C++”
  • 注意缺少 WPF、XAML、WinUI、UWP、Jupiter、Silverlight、WinForms 等。
    • 微软 2021 年的桌面开发者故事肯定 有趣,不是吗?
      • 自 Windows 7 以来,MS 一直没有清晰一致的桌面故事,令人沮丧,and still awful

我注意到“C++”不是一个平台,只是一种语言,所以他们这样描述它很奇怪。反正their C++ runtime ships with a renderer for Skia,用处不大

长答案:你可以,如果你想付出努力

  1. 克隆并构建他们的 C++ 运行时。
  2. 将 Skia 渲染器替换为您自己创建的以某种方式渲染到 WPF 的新渲染器。
    • 可以在 WPF 中托管 Skia,但它是一个不透明的表面:Rive 动画的结构和内容不会由 WPF 直接呈现,这会导致效率低下。
    • 此外,我认为 WPF 仍然 卡在 DirectX 9 上,Rive 中可能有一些功能可以从 DX12 上受益。
  3. 剩下的就是 reader 的练习。