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

首次构建MAUI应用引入Material Design遇URI错误求助

问题排查与解决

核心问题是你误用了WPF版本的Material Design资源引用格式和包,MAUI不支持WPF的pack://application资源URI规则,且需要使用专门适配MAUI的Material Design库。

具体解决步骤

1. 卸载不兼容的NuGet包

先移除针对WPF的Material Design相关包:

  • MaterialDesignThemes.Wpf
  • MaterialDesignExtensions(WPF版本)

2. 安装MAUI专用的Material Design包

在NuGet包管理器中安装MaterialDesignThemes.Maui(这是官方适配MAUI的Material Design 3实现)。

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

替换原有的Material Design资源引用为MAUI兼容的格式,注意加载顺序(第三方资源在前,自定义样式在后,方便覆盖默认样式):

<Application xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:local="clr-namespace:Presentation"
             x:Class="Presentation.App">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <!-- Material Design 3 核心资源 -->
                <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Maui;component/Themes/MaterialDesign3.Defaults.xaml" />
                <!-- 你的自定义样式 -->
                <ResourceDictionary Source="Resources/Styles/Colors.xaml" />
                <ResourceDictionary Source="Resources/Styles/Styles.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>
</Application>

4. 初始化Material Design组件

在App.xaml.cs的构造函数中添加初始化代码,确保MAUI能正确加载Material Design资源:

public App()
{
    InitializeComponent();
    // 初始化Material Design MAUI组件
    MaterialDesignThemes.Maui.MauiMaterial.Init();
    MainPage = new MainPage();
}

额外注意

  • 如果你需要类似MaterialDesignExtensions的扩展控件,要找MAUI版本的对应库,不要直接用WPF的扩展包,两者控件模型不兼容。
  • MAUI的资源字典引用优先使用pack://application:,,,/或ms-appx:///格式,不要混用WPF的资源路径规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 10:54:20