0

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

MainPage.xaml来自(仅控件)的标记:

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

默认情况下,该控件的样式为 in 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
    );
4

1 回答 1

0

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

于 2021-02-05T15:35:50.910 回答