Я создал неупакованное приложение WinUI 3 на основе этой статьи: https://learn.microsoft.com/en-us/windows/apps/winui/winui3/create-your-first-winui3-app#unpackaged-create- a-new-project-for-unpacked-c-or-c-winui-3-desktop-app.
Проблема в том, что XAML моего окна содержит <Image Source = "ms-appx:///Assets/Logo.png" />, и этот файл Logo.png не отображается в окне после публикации, пока я не скопирую файл изображения в каталог Assets в папке публикации. Но я не хочу хранить изображения в виде отдельных файлов. Я бы хотел, чтобы они были встроены в мою сборку и к ним можно было получить доступ из XAML.
Осуществимо ли это?





Основываясь на ссылке Ника, я придумал следующее решение:
class Loader: BitmapSource {
static readonly Assembly assembly = typeof(Loader).GetTypeInfo().Assembly;
public string Name {
set {
SetSource(assembly.GetManifestResourceStream(value).AsRandomAccessStream());
}
}
}
<Grid>
<Grid.Resources>
<local:Loader x:Key = "Image1" Name = "App1.Assets.Image.png" />
</Grid.Resources>
<Image Source = "{StaticResource Image1}" />
</Grid>
В приведенном выше коде отображается Assets\Image.png, где App1 — корневое пространство имен.
Я не знаю, работает ли это для WinUI 3, но вы можете попробовать это: stackoverflow.com/questions/62032643/…