如何访问不属于具有相对路径的任何项目/程序集的图像



我正在为《帝国时代2 DE》制作一个mod,我的目标是从新UI的目录中访问一个旧的纹理文件。文件结构如下:

C:Program Files (x86)SteamsteamappscommonAoE2DE

是包含exe的游戏文件夹。

AoE2DE/resources/_common/wpfg

app.xaml和ResourceDictionary源所在的位置。

现在我正试图访问这个图像(来自wpfg下的.xaml文件(:

AoE2DE/widgetui/textures/backgrounds/wide_default_background.dds

我试了以下几种,都不起作用。背景没有加载。

<Image Source="/../../../widgetui/textures/backgrounds/wide_default_background.dds" />
<Image Source="pack://siteoforigin:,,,../../../widgetui/textures/backgrounds/wide_default_background.dds" />

我还尝试在widgetui下创建一个SystemResourcesOldTextures.xaml文件,这样我就可以简单地编写

<Image Source="textures/backgrounds/wide_default_background.dds" />

并通过将该行添加到ResourceDictionary.MergedDictionaries来将该文件包括在app.xaml

<ResourceDictionary Source="pack://siteoforigin:,,,../../../widgetui/SystemResourcesOldTextures.xaml" />

也没用。

在Source中设置绝对路径是可行的,但这并不实用,因为每个人的游戏路径可能不同。将资源复制到wpfg中也不理想,因为mod大小会增加很多。

注:

  • 由于这是一款游戏,我无法访问项目文件,也无法访问任何C#代码。我无法编译。我只能编辑XAML文件并重新启动游戏进行验证
  • 我看到有人问过类似的问题,但没有人能回答我的问题。我要访问的映像没有关联的项目/程序集

你可以试试这篇文章在xaml 中无法引用具有相对路径的图像源

<Image Source="pack://siteoforigin:,,,/../../../widgetui/textures/backgrounds/wide_default_background.dds" />

最新更新