2

因此,我从 WPF 切换到 Avalonia 以用于我的应用程序的跨平台使用。WPF 支持图像的相对路径。但是当我切换到 Avalonia 时,将 Window 的背景设置为 ImageBrush,并使用 Image 的相对路径的源(类似于Images/Background.png),它会输出:

System.IO.FileNotFoundException: 'The resource Images/Background.png could not be found.'

我一开始以为是因为字符串无法转换为IBitmap接口,但后来我意识到我给它绝对路径时错了(类似于C:\Users\username\source\repos\MySolution\MyProject\Images\Background.png)。我怎么解决这个问题?

编辑:Images/Background.png被复制到输出目录,我使用的是 Visual Studio 2019。

4

1 回答 1

2

您需要将所有资产添加到.csproj文件中的标签中,以便 Avalonia 可以找到它们。相对路径就足够了。如果您.csproj位于应用程序的根文件夹中,则需要在.csproj文件中添加以下属性:

<ItemGroup>
  <AvaloniaResource Include="Images\**" />
</ItemGroup>

推荐

当您从 Visual Studio 中的模板创建 Avalonia 项目时,该文件夹将自动包含在内,例如,默认情况下Assets这将包含在您的文件夹中:.csproj

<ItemGroup>
  <AvaloniaResource Include="Assets\**" />
</ItemGroup>

我个人认为最好Images在目录中创建一个文件夹Assets并将图像放在那里。这样它们就会自动包含在内,而无需您修改.csproj(假设您使用了官方模板)。

于 2020-07-22T07:11:33.530 回答