【问题标题】:How to convert XBF (XAML Binary Format) to XAML如何将 XBF(XAML 二进制格式)转换为 XAML
【发布时间】:2015-08-20 16:52:44
【问题描述】:

在 Windows 8.1 版本中,有一些新的 API 更改/添加。根据新添加,有一个称为“XAML 二进制格式”的新功能,它将提高屏幕上的渲染性能。 XamlBinaryWriter 类负责转换为 XAML 二进制格式。所有 XAML 文件都将转换为 XBF。有任何人尝试将 XBF 文件转换为 XAML 文件。我对 XAML 文件有一些依赖。如果没有 XAML 格式,我将无法继续。请告诉我如何将 XBF 转换为 XAML 文件。

【问题讨论】:

  • 您是说要在包中包含一个 XAML 文件,而不需要构建过程将其转换为 XBF?在这种情况下,您是否尝试将文件的Build Action 属性设置为ContentResource

标签: windows-8.1


【解决方案1】:

首先,下载并安装微软的.NetNative,作为其中一部分安装的ReducerEngine.dll 包含一些反编译器的primitive implementation

但是,MS 的实现很差,它甚至不支持 XAML 命名空间。您可以使用 Microsoft 的实现来学习 XBF 文件的结构,以进行反编译,但是我建议您实现自己的解决方案。这并不难,我的是 12 个 C# 文件中的大约 1000 行代码。

XBF 文件相当简单。它们包含一个固定的标题,然后是 6 个查找表(字符串、程序集、类型命名空间、类型、属性、XML 命名空间),然后是 DOM 树部分,其中对象通过整数键引用这些表中的值。

附:我对此最感兴趣的问题是,为什么微软选择重新发明轮子而不是使用他们的.NET Binary XML format 或它的子集?他们有多年的二进制 XML 实现,从技术上讲,它的格式比 XBF 更好。

【讨论】:

    猜你喜欢
    • 2013-06-25
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    • 2011-04-16
    • 2015-11-23
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多