【问题标题】:Cannot use relative image path in Avalonia XAML无法在 Avalonia XAML 中使用相对图像路径
【发布时间】:2020-07-10 13:18:14
【问题描述】:

所以我从 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。

【问题讨论】:

    标签: .net-core avaloniaui


    【解决方案1】:

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

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

    推荐

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-01-10
      • 1970-01-01
      • 2015-09-20
      • 2017-06-19
      • 1970-01-01
      • 2019-02-08
      • 1970-01-01
      相关资源
      最近更新 更多