自定义控件中的图像未在 UWP 中加载(WinUI3 预览版 3 C++/WinRT)
Image in custom control isn't loaded in UWP (WinUI3 preview 3 C++/WinRT)
我正在关注 Microsoft tutorial on custom controls(templated) in WinUI3, and decided to fiddle with them (I'm new to WinUI). I've been trying to build an 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 属性 使用 hyperlink,它似乎工作正常,但我无法使用本地图像文件(在 Assets 文件夹中)。此外,同样的事情在桌面应用程序中工作正常,但前提是我使用绝对路径,而在 UWP 应用程序中,根本没有任何工作(除了 https link)。我已将 woah.jpg 文件放在所有文件夹中,并测试了 Themes/woah.jpg
和 woah.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)。
我正在关注 Microsoft tutorial on custom controls(templated) in WinUI3, and decided to fiddle with them (I'm new to WinUI). I've been trying to build an 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 属性 使用 hyperlink,它似乎工作正常,但我无法使用本地图像文件(在 Assets 文件夹中)。此外,同样的事情在桌面应用程序中工作正常,但前提是我使用绝对路径,而在 UWP 应用程序中,根本没有任何工作(除了 https link)。我已将 woah.jpg 文件放在所有文件夹中,并测试了 Themes/woah.jpg
和 woah.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)。