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

.NET MAUI中如何跨项目共享XAML样式资源?

.NET MAUI 跨项目共享 Style 资源实现方案

完全可以实现同一解决方案下多个MAUI项目共享MyResources中的Colors.xaml和Styles.xaml,以下是具体步骤:

1. 调整MyResources项目配置

  • 将两个MAUI项目中的Colors.xaml和Styles.xaml迁移到MyResources/Resources/Styles目录下
  • 修改MyResources项目的.csproj文件,确保这两个XAML文件被正确标记为MAUI可识别的资源:
<ItemGroup>
  <!-- 标记样式XAML为MAUI资源 -->
  <MauiXaml Include="Resources/Styles/*.xaml" />
</ItemGroup>

2. 为MAUI项目添加项目引用

在Project[1/2]的右键菜单中选择「添加」→「项目引用」,勾选MyResources项目,完成跨项目引用关联。

3. 修改App.xaml引用共享资源字典

不要使用文件相对路径(编译运行时会找不到资源),改用程序集引用格式:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <!-- 格式:pack://application:,,,/程序集名称;component/资源相对路径 -->
            <ResourceDictionary Source="pack://application:,,,/MyResources;component/Resources/Styles/Colors.xaml" />
            <ResourceDictionary Source="pack://application:,,,/MyResources;component/Resources/Styles/Styles.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

注意:将MyResources替换为你的MyResources项目实际的程序集名称(可在MyResources.csproj的<AssemblyName>节点查看)

4. 清理并验证

  • 删除Project[1/2]自身的Resources/Styles/Colors.xaml和Styles.xaml文件
  • 清理解决方案,重新生成所有项目
  • 运行MAUI项目,验证样式是否正常加载

为什么之前的相对路径不行?

直接使用文件相对路径(../MyResources/...)仅在设计时可能临时生效,但编译后MyResources的资源会被嵌入到其程序集内,MAUI项目无法通过文件路径访问跨程序集的资源,必须使用程序集引用的方式才能正确加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 01:46:20