You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WPF与MAUI两类.NET项目间共享图片资源?

单个图片库兼容WPF和.NET MAUI方案

完全可以用单个多目标程序集实现,不用复制图片文件。核心是修改Core.Images.csproj,添加多目标框架支持,并针对不同平台配置资源嵌入规则。

步骤1:修改项目目标框架

将原单一的net6.0-windows扩展为包含MAUI所需目标框架的多目标配置,同时为不同框架设置专属属性:

<PropertyGroup>
  <!-- 多目标框架:WPF + MAUI各平台 -->
  <TargetFrameworks>net6.0-windows;net6.0-android;net6.0-ios;net6.0-maccatalyst;net6.0-windows10.0.19041.0</TargetFrameworks>
  
  <!-- WPF专属配置 -->
  <UseWpf Condition="'$(TargetFramework)' == 'net6.0-windows'">true</UseWpf>
  
  <!-- MAUI专属配置 -->
  <EnableMauiSupport Condition="'$(TargetFramework)' != 'net6.0-windows'">true</EnableMauiSupport>
  <ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>

注:如果你的MAUI项目用的是net7.0,对应把目标框架改成net7.0-xxx即可。

步骤2:分平台配置资源嵌入规则

WPF需要将图片设为Resource,MAUI则需要设为MauiImage(SVG同理)。通过条件判断为不同框架设置资源类型:

<!-- WPF资源配置 -->
<ItemGroup Condition="'$(TargetFramework)' == 'net6.0-windows'">
  <Resource Include="PNG\*.png" />
  <Resource Include="SVG\*.svg" />
</ItemGroup>

<!-- MAUI资源配置 -->
<ItemGroup Condition="'$(TargetFramework)' != 'net6.0-windows'">
  <MauiImage Include="PNG\*.png" />
  <MauiImage Include="SVG\*.svg" />
  <!-- 如果SVG需要特殊处理,可添加额外属性,比如: -->
  <!-- <MauiImage Include="SVG\*.svg" BaseResourceID="SvgImages" /> -->
</ItemGroup>

步骤3:不同平台的资源访问方式

  • WPF端:继续使用原pack URI格式:
    var logoUri = new Uri("pack://application:,,,/Core.Images;component/PNG/Image2.png");
    
  • MAUI端:利用MAUI的资源访问API,注意资源命名空间要和程序集匹配:
    // PNG图片
    var pngImage = ImageSource.FromResource("Core.Images.PNG.Image1.png", typeof(Core.Images.AssemblyMarker).Assembly);
    // SVG图片(若使用DevExpress MAUI,可直接用SvgImageSource)
    var svgImage = new DevExpress.Maui.Svg.SvgImageSource() { Resource = "Core.Images.SVG.Image1.svg" };
    

注:可以在Core.Images库中添加一个空类AssemblyMarker,方便获取程序集对象。

额外注意事项

  • SVG在MAUI中的支持:如果需要渲染SVG,MAUI原生需要依赖第三方库(如Microsoft.Maui.Graphics.Svg),如果用DevExpress MAUI控件,直接引用DevExpress.Maui.Svg即可。
  • 版本一致性:确保库的目标框架版本和WPF、MAUI主应用的版本完全匹配,避免兼容性问题。

内容的提问来源于stack exchange,提问作者E4est

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 00:27:27