UWP 中未加载自定义控件中的图像WinUI3 预览版 3 C++/WinRT

问题描述

我正在关注 WinUI3 中自定义控件(模板化)的 Microsoft tutorial,并决定摆弄它们(我是 WinUI 的新手)。我一直在尝试构建 Image Card 控件,但似乎无法从应用文件夹加载我的图像。

来自 MainPage.xaml标记(只是控制):

<local:BasicCard ImgSrc="Assets/woah.jpg" Title="Title here" Content="Content Here"/>

控件的样式认为 Themes/Generic.xaml,相关标记如下:

<ImageBrush.ImageSource>
     <BitmapImage UriSource="{Binding Path=ImgSrc,RelativeSource={RelativeSource TemplatedParent}}" />
</ImageBrush.ImageSource>

现在,如果我为 ImgSrc 属性使用超链接似乎可以正常工作,但是我无法使用本地图像文件(在 Assets 文件夹中)将其拉下来。此外,同样的事情在桌面应用程序中工作正常,但前提是我使用绝对路径,而在 UWP 应用程序中,什么都不起作用(除了 https 链接)。我已将 woah.jpg 文件放在所有文件夹中,并测试了 Themes/woah.jpgwoah.jpg 之类的模式,甚至是绝对路径,但没有任何效果。我究竟做错了什么?任何帮助将不胜感激,如果需要,请索取完整的标记片段。

最后,我不知道这是否重要,但我目前正在将该财产注册winrt::hstring 像这样:

Microsoft::UI::Xaml::DependencyProperty BasicCard::m_ImageSourceProperty =
    Microsoft::UI::Xaml::DependencyProperty::Register(
        L"ImgSrc",winrt::xaml_typename<winrt::hstring>(),winrt::xaml_typename<TitleBarPlease::BasicCard>(),NULL
    );

解决方法

IInspectable 指出图像需要成为包的一部分是正确的,奇怪的是并非默认情况下包含 Assets 文件夹中的所有资源,右键单击图像,然后选择“包含在项目”解决了这个问题(VS 2019)。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...