XML 命名空间“using:Microsoft.UI.Xaml.Controls”中不存在标记“XamlControlsResources”

Posted

技术标签:

【中文标题】XML 命名空间“using:Microsoft.UI.Xaml.Controls”中不存在标记“XamlControlsResources”【英文标题】:The tag 'XamlControlsResources' does not exist in XML namespace 'using:Microsoft.UI.Xaml.Controls' 【发布时间】:2020-10-13 21:34:45 【问题描述】:

我试图使用 WinUI,所以我从 Nuget 安装了插件 Microsoft.UI.Xaml (2.4.2) 并按照说明添加 This <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"/> to my App.Xaml

这是我的 App.Xaml 文件

<Application x:Class="WpfApp1.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:WpfApp1"
    StartupUri="MainWindow.xaml">
        <Application.Resources>
            <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
        </Application.Resources>
</Application>

但它说:

标签 XML 命名空间中不存在“XamlControlsResources” '使用:Microsoft.UI.Xaml.Controls'

我尝试了 WinUI 插件的旧版本并尝试了 .Net Core 和 Framework,但仍然遇到此问题

【问题讨论】:

【参考方案1】:

我相信这个 WinUI 2.4.2 库仅在您创建 UWP 应用程序时才兼容,而不是 WPF 应用程序。

话虽如此,根据this documentation from Microsoft,从 WinUI 3 开始,您将能够在 WPF 中执行此操作。

【讨论】:

是的,你是对的,我打算在阅读这些文件后删除我的问题,但发现你已经回答了我,所以我接受了这个问题,我会保留它,谢谢你的回答 :) 【参考方案2】:

添加

<package id="Microsoft.UI.Xaml" version="2.5.0-prerelease.200812001" targetFramework="native" />

如果您浏览并找不到它,请将包含上述内容的行添加到 packages.config 文件检查安装并等待还原显示在 Nuget 工具中。

确保引用在&lt;Import Project="packages\Microsoft.UI.Xaml" version="2.5.0-prerelease.200812001..."

还有&lt;Error Condition="!Exists('packages\Microsoft.UI.Xaml" version="2.5.0-prerelease.200812001..." 在项目的 .vcxproj 文件中。

【讨论】:

实际上我应该使用 UWP 但我一开始并不知道,我使用的是 WPF 这就是为什么它不起作用,但无论如何谢谢

以上是关于XML 命名空间“using:Microsoft.UI.Xaml.Controls”中不存在标记“XamlControlsResources”的主要内容,如果未能解决你的问题,请参考以下文章

『XML』XML/XSD命名空间解析

VS2015-项目默认的XML命名空间必须是MSBuild XML命名空间

项目的默认 XML 命名空间必须是 MSBuild XML 命名空间

从 XML 中删除多个 XML 命名空间

XML 命名空间有啥用?

Atitit xml命名空间机制