移植WPF到.NET MAUI:类库ContentView图片无法显示,求正确方案
.NET MAUI类库中ContentView引用图片的正确实现
步骤1:正确配置类库中的图片
- 将PNG图片放在类库的
Resources/Images目录下(无此目录则手动创建) - 选中图片,右键→属性:
- 设置生成操作为
MauiImage - 设置复制到输出目录为
如果较新则复制
- 设置生成操作为
步骤2:XAML中正确引用图片
需要在图片Source中明确指定类库的程序集名称,格式为:[图片文件名];assembly=[类库程序集名]
比如你的类库程序集名为ATool,图片是test.png,正确的XAML代码如下:
<Border StrokeThickness="3"> <Image Source="test.png;assembly=ATool" WidthRequest="100" HeightRequest="100"/> </Border>
为什么之前的写法无效?
- 直接写
test.png:MAUI会默认从主应用的Resources/Images目录查找,不会定位到类库资源 - 用
ATool.Resources.Images.test.png的嵌入式资源写法:MAUI的MauiImage是专门的资源处理机制,和传统嵌入式资源的加载逻辑不同,这种写法无法被MAUI的资源系统识别
补充:代码后台加载方式(可选)
如果需要在C#代码中设置图片源,可以这样写:
image.Source = ImageSource.FromResource("ATool.Resources.Images.test.png", typeof(你的ContentView类).Assembly);
这种方式需要确保图片的生成操作是嵌入式资源,不过更推荐用前面的MauiImage配置方式,更符合MAUI的资源管理规范。
内容的提问来源于stack exchange,提问作者JeffM
相关产品推荐
相关产品推荐

