Невозможно использовать относительный путь к изображению в Avalonia XAML - PullRequest
0 голосов
/ 10 июля 2020

Итак, я переключился с WPF на Avalonia для кроссплатформенного использования моего приложения. WPF поддерживает относительный путь к изображению. Но когда я переключаюсь на Avalonia, устанавливаю фон окна на ImageBru sh с источником относительного пути изображения (что-то вроде 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.

1 Ответ

0 голосов
/ 22 июля 2020

Вам необходимо добавить все ваши ресурсы в тег в вашем .csproj файле, чтобы Avalonia смогла их найти. Достаточно относительного пути. Если ваш .csproj находится в папке root вашего приложения, вам нужно будет добавить следующее свойство в свой .csproj файл:

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

Рекомендация

При создании Avalonia Project из шаблона внутри Visual Studio, тогда папка Assets будет автоматически добавлена, например, по умолчанию она будет в вашем .csproj:

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

Я лично считаю, что лучше просто создайте папку Images внутри каталога Assets и поместите туда свои изображения. Таким образом, они автоматически добавляются без необходимости изменять ваш .csproj (при условии, что вы использовали официальные шаблоны).

...